Coverage Report

Created: 2025-03-23 01:42

/src/scnlib/include/scn/scan.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright 2017 Elias Kosunen
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
//
15
// This file is a part of scnlib:
16
//     https://github.com/eliaskosunen/scnlib
17
18
#pragma once
19
20
// Includes <cassert>, <cstddef>, <cstdint>, and <type_traits>
21
#include <scn/fwd.h>
22
23
#include <array>
24
#include <cstdio>
25
#include <cstring>
26
#include <iterator>
27
#include <limits>
28
#include <optional>
29
#include <string>
30
#include <string_view>
31
#include <system_error>
32
#include <tuple>
33
34
namespace scn {
35
SCN_BEGIN_NAMESPACE
36
37
/////////////////////////////////////////////////////////////////
38
// Metaprogramming facilities
39
/////////////////////////////////////////////////////////////////
40
41
namespace detail {
42
43
template <typename T>
44
using integer_type_for_char =
45
    std::conditional_t<std::is_signed_v<T>, int, unsigned>;
46
47
template <typename T, template <typename...> class Templ>
48
struct is_specialization_of_impl : std::false_type {};
49
template <typename... T, template <typename...> class Templ>
50
struct is_specialization_of_impl<Templ<T...>, Templ> : std::true_type {};
51
52
template <typename T, template <typename...> class Templ>
53
using is_specialization_of =
54
    is_specialization_of_impl<remove_cvref_t<T>, Templ>;
55
template <typename T, template <typename...> class Templ>
56
inline constexpr bool is_specialization_of_v =
57
    is_specialization_of<T, Templ>::value;
58
59
// from mp11:
60
61
template <typename T>
62
struct mp_identity {
63
    using type = T;
64
};
65
template <typename T>
66
using mp_identity_t = typename mp_identity<T>::type;
67
68
template <bool B>
69
using mp_bool = std::integral_constant<bool, B>;
70
template <typename T>
71
using mp_to_bool = mp_bool<static_cast<bool>(T::value)>;
72
template <typename T>
73
using mp_not = mp_bool<!T::value>;
74
75
template <bool C, typename T, typename... E>
76
struct mp_if_c_impl;
77
template <typename T, typename... E>
78
struct mp_if_c_impl<true, T, E...> {
79
    using type = T;
80
};
81
template <typename T, typename E>
82
struct mp_if_c_impl<false, T, E> {
83
    using type = E;
84
};
85
86
template <bool C, typename T, typename... E>
87
using mp_if_c = typename mp_if_c_impl<C, T, E...>::type;
88
template <typename C, typename T, typename... E>
89
using mp_if = typename mp_if_c_impl<static_cast<bool>(C::value), T, E...>::type;
90
91
template <template <typename...> class F, typename... T>
92
struct mp_valid_impl {
93
    template <template <typename...> class G, typename = G<T...>>
94
    static std::true_type check(int);
95
    template <template <typename...> class>
96
    static std::false_type check(...);
97
98
    using type = decltype(check<F>(0));
99
};
100
101
template <template <typename...> class F, typename... T>
102
using mp_valid = typename mp_valid_impl<F, T...>::type;
103
template <template <typename...> class F, typename... T>
104
inline constexpr bool mp_valid_v = mp_valid<F, T...>::value;
105
106
struct mp_nonesuch {};
107
template <template <typename...> class F, typename... T>
108
struct mp_defer_impl {
109
    using type = F<T...>;
110
};
111
112
template <template <typename...> class F, typename... T>
113
using mp_defer = mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_nonesuch>;
114
115
template <bool C, class T, template <class...> class F, class... U>
116
struct mp_eval_if_c_impl;
117
118
template <class T, template <class...> class F, class... U>
119
struct mp_eval_if_c_impl<true, T, F, U...> {
120
    using type = T;
121
};
122
123
template <class T, template <class...> class F, class... U>
124
struct mp_eval_if_c_impl<false, T, F, U...> : mp_defer<F, U...> {};
125
126
template <bool C, class T, template <class...> class F, class... U>
127
using mp_eval_if_c = typename mp_eval_if_c_impl<C, T, F, U...>::type;
128
template <class C, class T, template <class...> class F, class... U>
129
using mp_eval_if =
130
    typename mp_eval_if_c_impl<static_cast<bool>(C::value), T, F, U...>::type;
131
template <class C, class T, class Q, class... U>
132
using mp_eval_if_q = typename mp_eval_if_c_impl<static_cast<bool>(C::value),
133
                                                T,
134
                                                Q::template fn,
135
                                                U...>::type;
136
137
// mp_eval_if_not
138
template <class C, class T, template <class...> class F, class... U>
139
using mp_eval_if_not = mp_eval_if<mp_not<C>, T, F, U...>;
140
template <class C, class T, class Q, class... U>
141
using mp_eval_if_not_q = mp_eval_if<mp_not<C>, T, Q::template fn, U...>;
142
143
// mp_eval_or
144
template <class T, template <class...> class F, class... U>
145
using mp_eval_or = mp_eval_if_not<mp_valid<F, U...>, T, F, U...>;
146
template <class T, class Q, class... U>
147
using mp_eval_or_q = mp_eval_or<T, Q::template fn, U...>;
148
149
// mp_valid_and_true
150
template <template <class...> class F, class... T>
151
using mp_valid_and_true = mp_eval_or<std::false_type, F, T...>;
152
template <class Q, class... T>
153
using mp_valid_and_true_q = mp_valid_and_true<Q::template fn, T...>;
154
155
// extension
156
template <template <typename...> class F, typename... T>
157
using mp_valid_result =
158
    mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_identity<void>>;
159
template <template <typename...> class F, typename... T>
160
using mp_valid_result_t = typename mp_valid_result<F, T...>::type;
161
162
/////////////////////////////////////////////////////////////////
163
// pointer_traits and to_address
164
/////////////////////////////////////////////////////////////////
165
166
template <typename Ptr, typename>
167
struct pointer_traits {};
168
169
template <typename T>
170
struct pointer_traits<T*, void> {
171
    using pointer = T*;
172
    using element_type = T;
173
    using difference_type = std::ptrdiff_t;
174
175
    template <typename U>
176
    using rebind = U*;
177
178
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
179
    static constexpr pointer pointer_to(U& r) noexcept
180
    {
181
        return &r;
182
    }
183
184
    SCN_FORCE_INLINE static constexpr pointer to_address(pointer p) noexcept
185
    {
186
        return p;
187
    }
188
};
189
190
template <typename Ptr>
191
using apply_member_difference_type = typename Ptr::difference_type;
192
template <typename Ptr>
193
using get_member_difference_type =
194
    mp_eval_or<std::ptrdiff_t, apply_member_difference_type, Ptr>;
195
196
template <typename Ptr, typename ElementType>
197
struct pointer_traits_generic_base {
198
    using pointer = Ptr;
199
    using element_type = ElementType;
200
201
    using difference_type = get_member_difference_type<Ptr>;
202
    static_assert(std::is_integral_v<difference_type>);
203
204
    // no rebind (TODO?)
205
206
    template <typename P = Ptr>
207
    static auto pointer_to(ElementType& r) -> decltype(P::pointer_to(r))
208
    {
209
        return Ptr::pointer_to(r);
210
    }
211
};
212
213
template <typename It, typename = void>
214
struct wrapped_pointer_iterator;
215
216
#ifdef _GLIBCXX_DEBUG
217
template <typename Elem, typename Container>
218
struct wrapped_pointer_iterator<__gnu_debug::_Safe_iterator<Elem*, Container>> {
219
    SCN_FORCE_INLINE static constexpr auto to_address(
220
        const __gnu_debug::_Safe_iterator<Elem*, Container>& it) noexcept
221
    {
222
        return it.base();
223
    }
224
};
225
#endif
226
#if SCN_STDLIB_GLIBCXX
227
template <typename Elem, typename Container>
228
struct wrapped_pointer_iterator<
229
    __gnu_cxx::__normal_iterator<Elem*, Container>> {
230
    SCN_FORCE_INLINE static constexpr auto to_address(
231
        const __gnu_cxx::__normal_iterator<Elem*, Container>& it) noexcept
232
    {
233
        return it.base();
234
    }
235
};
236
#endif
237
#if SCN_STDLIB_LIBCPP
238
template <typename Elem>
239
struct wrapped_pointer_iterator<std::__wrap_iter<Elem*>> {
240
    SCN_FORCE_INLINE static constexpr auto to_address(
241
        const std::__wrap_iter<Elem*>& it) noexcept
242
0
    {
243
0
        return it.base();
244
0
    }
245
};
246
#endif
247
248
template <typename I>
249
using apply_deref = decltype(*SCN_DECLVAL(I&));
250
template <typename I>
251
using apply_incr = decltype(++SCN_DECLVAL(I&));
252
template <typename I>
253
using apply_member_unwrapped = decltype(SCN_DECLVAL(I&)._Unwrapped());
254
template <typename It>
255
struct wrapped_pointer_iterator<
256
    It,
257
    std::enable_if_t<mp_valid_v<apply_deref, It> &&
258
                     mp_valid_v<apply_incr, It> &&
259
                     mp_valid_v<apply_member_unwrapped, It>>> {
260
    SCN_FORCE_INLINE static constexpr auto to_address(const It& it) noexcept
261
    {
262
        return it._Unwrapped();
263
    }
264
};
265
266
template <typename I>
267
using apply_member_to_address =
268
    decltype(wrapped_pointer_iterator<I>::to_address(SCN_DECLVAL(const I&)));
269
270
template <typename Iterator>
271
struct pointer_traits<
272
    Iterator,
273
    std::enable_if_t<mp_valid_v<apply_member_to_address, Iterator>>>
274
    : pointer_traits_generic_base<
275
          Iterator,
276
          std::remove_reference_t<decltype(*SCN_DECLVAL(Iterator&))>> {
277
    SCN_FORCE_INLINE static constexpr auto to_address(
278
        const Iterator& it) noexcept
279
0
    {
280
0
        return wrapped_pointer_iterator<Iterator>::to_address(it);
281
0
    }
282
};
283
284
template <typename It>
285
using apply_ptr_traits_to_address =
286
    decltype(pointer_traits<It>::to_address(SCN_DECLVAL(const It&)));
287
template <typename It>
288
inline constexpr bool can_make_address_from_iterator =
289
    std::is_pointer_v<mp_valid_result_t<apply_ptr_traits_to_address, It>>;
290
291
template <typename T>
292
SCN_FORCE_INLINE constexpr T* to_address_impl(T* p, priority_tag<2>) noexcept
293
204M
{
294
204M
    return p;
295
204M
}
char const* scn::v4::detail::to_address_impl<char const>(char const*, scn::v4::detail::priority_tag<2ul>)
Line
Count
Source
293
11.2M
{
294
11.2M
    return p;
295
11.2M
}
wchar_t const* scn::v4::detail::to_address_impl<wchar_t const>(wchar_t const*, scn::v4::detail::priority_tag<2ul>)
Line
Count
Source
293
193M
{
294
193M
    return p;
295
193M
}
296
template <typename Ptr>
297
SCN_FORCE_INLINE constexpr auto to_address_impl(const Ptr& p,
298
                                                priority_tag<1>) noexcept
299
    -> decltype(::scn::detail::pointer_traits<Ptr>::to_address(p))
300
{
301
    return ::scn::detail::pointer_traits<Ptr>::to_address(p);
302
}
303
template <typename Ptr>
304
SCN_FORCE_INLINE constexpr auto to_address_impl(const Ptr& p,
305
                                                priority_tag<0>) noexcept
306
    -> decltype(::scn::detail::to_address_impl(p.operator->(),
307
                                               priority_tag<2>{}))
308
{
309
    return ::scn::detail::to_address_impl(p.operator->(), priority_tag<2>{});
310
}
311
312
template <typename Ptr>
313
SCN_FORCE_INLINE constexpr auto to_address(Ptr&& p) noexcept
314
    -> decltype(::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{}))
315
204M
{
316
204M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
204M
}
_ZN3scn2v46detail10to_addressIRPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
9.94M
{
316
9.94M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
9.94M
}
_ZN3scn2v46detail10to_addressIPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
1.28M
{
316
1.28M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
1.28M
}
_ZN3scn2v46detail10to_addressIPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
5.94M
{
316
5.94M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
5.94M
}
_ZN3scn2v46detail10to_addressIRPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
187M
{
316
187M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
187M
}
318
319
}  // namespace detail
320
321
/////////////////////////////////////////////////////////////////
322
// <expected> implementation
323
/////////////////////////////////////////////////////////////////
324
325
// The following implementation of expected is based on TartanLlama/expected,
326
// but is heavily modified.
327
//
328
// The original source is here:
329
//     https://github.com/TartanLlama/expected
330
// which is licensed under CC0 (Public Domain).
331
332
/**
333
 * \see `std::unexpected`
334
 */
335
template <typename E>
336
class SCN_TRIVIAL_ABI unexpected {
337
    static_assert(std::is_destructible_v<E>);
338
339
public:
340
    unexpected() = delete;
341
342
    template <
343
        typename Err = E,
344
        typename = std::enable_if_t<!std::is_same_v<Err, unexpected> &&
345
                                    !std::is_same_v<Err, std::in_place_t> &&
346
                                    std::is_constructible_v<E, Err>>>
347
    explicit constexpr unexpected(Err&& e) noexcept(
348
        std::is_nothrow_constructible_v<E, Err>)
349
570k
        : m_unexpected(std::forward<Err>(e))
350
583k
    {
351
583k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
583k
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error&, void>(scn::v4::scan_error&)
Line
Count
Source
349
445k
        : m_unexpected(std::forward<Err>(e))
350
445k
    {
351
445k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
445k
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error, void>(scn::v4::scan_error&&)
Line
Count
Source
349
125k
        : m_unexpected(std::forward<Err>(e))
350
125k
    {
351
125k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
125k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error, void>(scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error&, void>(scn::v4::impl::parse_error&)
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::eof_error>::unexpected<scn::v4::impl::eof_error, void>(scn::v4::impl::eof_error&&)
scn::v4::unexpected<scn::v4::impl::eof_error>::unexpected<scn::v4::impl::eof_error&, void>(scn::v4::impl::eof_error&)
Line
Count
Source
349
13.0k
        : m_unexpected(std::forward<Err>(e))
350
13.0k
    {
351
13.0k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
13.0k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error::code>::unexpected<scn::v4::impl::parse_error::code, void>(scn::v4::impl::parse_error::code&&)
353
354
    template <typename... Args,
355
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
356
    explicit constexpr unexpected(std::in_place_t, Args&&... args) noexcept(
357
        std::is_nothrow_constructible_v<E, Args...>)
358
583k
        : m_unexpected(std::forward<Args>(args)...)
359
596k
    {
360
596k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
361
596k
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error, void>(std::__1::in_place_t, scn::v4::scan_error&&)
Line
Count
Source
358
583k
        : m_unexpected(std::forward<Args>(args)...)
359
583k
    {
360
583k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
361
583k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error, void>(std::__1::in_place_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error::code, void>(std::__1::in_place_t, scn::v4::impl::parse_error::code&&)
362
363
    SCN_NODISCARD constexpr E& error() & noexcept
364
1.04M
    {
365
1.04M
        return m_unexpected;
366
1.04M
    }
scn::v4::unexpected<scn::v4::scan_error>::error() &
Line
Count
Source
364
1.01M
    {
365
1.01M
        return m_unexpected;
366
1.01M
    }
scn::v4::unexpected<scn::v4::impl::eof_error>::error() &
Line
Count
Source
364
26.1k
    {
365
26.1k
        return m_unexpected;
366
26.1k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error::code>::error() &
367
    SCN_NODISCARD constexpr const E& error() const& noexcept
368
0
    {
369
0
        return m_unexpected;
370
0
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::error() const &
371
372
    SCN_NODISCARD constexpr E&& error() && noexcept
373
    {
374
        return std::move(m_unexpected);
375
    }
376
    SCN_NODISCARD constexpr const E&& error() const&& noexcept
377
    {
378
        return std::move(m_unexpected);
379
    }
380
381
private:
382
    E m_unexpected;
383
};
384
385
template <typename E>
386
unexpected(E) -> unexpected<E>;
387
388
struct unexpect_t {};
389
inline constexpr unexpect_t unexpect{};
390
391
namespace detail {
392
template <typename T, typename... Args>
393
T* construct_at(T* p, Args&&... args) noexcept(
394
    std::is_nothrow_constructible_v<T, Args...>)
395
1.99M
{
396
1.99M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
1.99M
        T(std::forward<Args>(args)...);
398
1.99M
}
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
395
111k
{
396
111k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
111k
        T(std::forward<Args>(args)...);
398
111k
}
scn::v4::unexpected<scn::v4::scan_error>* scn::v4::detail::construct_at<scn::v4::unexpected<scn::v4::scan_error>, std::__1::in_place_t const&, scn::v4::scan_error>(scn::v4::unexpected<scn::v4::scan_error>*, std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
395
70.6k
{
396
70.6k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
70.6k
        T(std::forward<Args>(args)...);
398
70.6k
}
scn::v4::unexpected<scn::v4::scan_error>* scn::v4::detail::construct_at<scn::v4::unexpected<scn::v4::scan_error>, scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>*, scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
395
106k
{
396
106k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
106k
        T(std::forward<Args>(args)...);
398
106k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
395
135k
{
396
135k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
135k
        T(std::forward<Args>(args)...);
398
135k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
395
787k
{
396
787k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
787k
        T(std::forward<Args>(args)...);
398
787k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
395
787k
{
396
787k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
787k
        T(std::forward<Args>(args)...);
398
787k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
399
template <typename T>
400
void destroy_at(T* p) noexcept
401
1.96M
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
1.96M
    else {
408
1.96M
        p->~T();
409
1.96M
    }
410
1.96M
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
401
111k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
111k
    else {
408
111k
        p->~T();
409
111k
    }
410
111k
}
void scn::v4::detail::destroy_at<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>*)
Line
Count
Source
401
141k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
141k
    else {
408
141k
        p->~T();
409
141k
    }
410
141k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
401
135k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
135k
    else {
408
135k
        p->~T();
409
135k
    }
410
135k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
401
787k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
787k
    else {
408
787k
        p->~T();
409
787k
    }
410
787k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
401
787k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
787k
    else {
408
787k
        p->~T();
409
787k
    }
410
787k
}
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
411
412
struct deferred_init_tag_t {};
413
static constexpr deferred_init_tag_t deferred_init_tag{};
414
415
template <typename T,
416
          typename E,
417
          bool IsTriviallyDestructible =
418
              (std::is_void_v<T> || std::is_trivially_destructible_v<T>)&&std::
419
                  is_trivially_destructible_v<E>>
420
struct expected_storage_base;
421
422
template <typename T, typename E>
423
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, true> {
424
    constexpr expected_storage_base() noexcept(
425
        std::is_nothrow_default_constructible_v<T>)
426
898k
        : m_value(T{}), m_has_value(true)
427
898k
    {
428
898k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
426
111k
        : m_value(T{}), m_has_value(true)
427
111k
    {
428
111k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
426
787k
        : m_value(T{}), m_has_value(true)
427
787k
    {
428
787k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_storage_base()
429
430
    constexpr explicit expected_storage_base(deferred_init_tag_t) noexcept
431
        : m_deferred_init(), m_has_value(false)
432
    {
433
    }
434
435
    template <typename... Args,
436
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
437
    constexpr explicit expected_storage_base(
438
        std::in_place_t,
439
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
440
16.2M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
16.2M
    {
442
16.2M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
440
199k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
199k
    {
442
199k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
440
123k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
123k
    {
442
123k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
440
1.52M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.52M
    {
442
1.52M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
440
763k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
763k
    {
442
763k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
440
297k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
297k
    {
442
297k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
440
1.83M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.83M
    {
442
1.83M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
440
124k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
124k
    {
442
124k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
440
101k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
101k
    {
442
101k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<char const*, long>, void>(std::__1::in_place_t, std::__1::pair<char const*, long>&&)
Line
Count
Source
440
166k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
166k
    {
442
166k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
440
708
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
708
    {
442
708
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
440
770k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
770k
    {
442
770k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
440
616k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
616k
    {
442
616k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, long>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
440
1.23M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.23M
    {
442
1.23M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
440
126
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
126
    {
442
126
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
440
483k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
483k
    {
442
483k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
440
3.67M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
3.67M
    {
442
3.67M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
440
203k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
203k
    {
442
203k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<long, void>(std::__1::in_place_t, long&&)
Line
Count
Source
440
2.61M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
2.61M
    {
442
2.61M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const* const&, void>(std::__1::in_place_t, char const* const&)
Line
Count
Source
440
1.41k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.41k
    {
442
1.41k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
440
1.54M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.54M
    {
442
1.54M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const* const&, void>(std::__1::in_place_t, wchar_t const* const&)
Line
Count
Source
440
252
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
252
    {
442
252
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<int, void>(std::__1::in_place_t, int&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::expected_storage_base<wchar_t, void>(std::__1::in_place_t, wchar_t&&)
443
444
    template <typename... Args,
445
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
446
    constexpr explicit expected_storage_base(
447
        unexpect_t,
448
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
449
395k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
395k
          m_has_value(false)
451
395k
    {
452
395k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
23.5k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
23.5k
          m_has_value(false)
451
23.5k
    {
452
23.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
11.7k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
11.7k
          m_has_value(false)
451
11.7k
    {
452
11.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
11.7k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
11.7k
          m_has_value(false)
451
11.7k
    {
452
11.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
47.1k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
47.1k
          m_has_value(false)
451
47.1k
    {
452
47.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
23.5k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
23.5k
          m_has_value(false)
451
23.5k
    {
452
23.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
23.5k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
23.5k
          m_has_value(false)
451
23.5k
    {
452
23.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
14.8k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
14.8k
          m_has_value(false)
451
14.8k
    {
452
14.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
28.6k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
28.6k
          m_has_value(false)
451
28.6k
    {
452
28.6k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
106k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
106k
          m_has_value(false)
451
106k
    {
452
106k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
29.3k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
29.3k
          m_has_value(false)
451
29.3k
    {
452
29.3k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
57.2k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
57.2k
          m_has_value(false)
451
57.2k
    {
452
57.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
2.28k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
2.28k
          m_has_value(false)
451
2.28k
    {
452
2.28k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
976
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
976
          m_has_value(false)
451
976
    {
452
976
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
3.60k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
3.60k
          m_has_value(false)
451
3.60k
    {
452
3.60k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
1.44k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
1.44k
          m_has_value(false)
451
1.44k
    {
452
1.44k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
2.39k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
2.39k
          m_has_value(false)
451
2.39k
    {
452
2.39k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
956
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
956
          m_has_value(false)
451
956
    {
452
956
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
4.78k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
4.78k
          m_has_value(false)
451
4.78k
    {
452
4.78k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
1.91k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
1.91k
          m_has_value(false)
451
1.91k
    {
452
1.91k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
453
454
    constexpr T& get_value() & noexcept
455
19.7M
    {
456
19.7M
        return m_value;
457
19.7M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
199k
    {
456
199k
        return m_value;
457
199k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
3.50M
    {
456
3.50M
        return m_value;
457
3.50M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
310k
    {
456
310k
        return m_value;
457
310k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
123k
    {
456
123k
        return m_value;
457
123k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
1.52M
    {
456
1.52M
        return m_value;
457
1.52M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
2.31M
    {
456
2.31M
        return m_value;
457
2.31M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
763k
    {
456
763k
        return m_value;
457
763k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
124k
    {
456
124k
        return m_value;
457
124k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
770k
    {
456
770k
        return m_value;
457
770k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
485k
    {
456
485k
        return m_value;
457
485k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
3.67M
    {
456
3.67M
        return m_value;
457
3.67M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
203k
    {
456
203k
        return m_value;
457
203k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
101k
    {
456
101k
        return m_value;
457
101k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
298k
    {
456
298k
        return m_value;
457
298k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
166k
    {
456
166k
        return m_value;
457
166k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
616k
    {
456
616k
        return m_value;
457
616k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
1.83M
    {
456
1.83M
        return m_value;
457
1.83M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
1.54M
    {
456
1.54M
        return m_value;
457
1.54M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
1.23M
    {
456
1.23M
        return m_value;
457
1.23M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
458
    constexpr const T& get_value() const& noexcept
459
0
    {
460
0
        return m_value;
461
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
462
    constexpr T&& get_value() && noexcept
463
0
    {
464
0
        return std::move(m_value);
465
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_value() &&
466
    constexpr const T&& get_value() const&& noexcept
467
    {
468
        return std::move(m_value);
469
    }
470
471
    constexpr unexpected<E>& get_unexpected() & noexcept
472
395k
    {
473
395k
        return m_unexpected;
474
395k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
23.5k
    {
473
23.5k
        return m_unexpected;
474
23.5k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
106k
    {
473
106k
        return m_unexpected;
474
106k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
11.7k
    {
473
11.7k
        return m_unexpected;
474
11.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
11.7k
    {
473
11.7k
        return m_unexpected;
474
11.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
47.1k
    {
473
47.1k
        return m_unexpected;
474
47.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
23.5k
    {
473
23.5k
        return m_unexpected;
474
23.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
23.5k
    {
473
23.5k
        return m_unexpected;
474
23.5k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
2.28k
    {
473
2.28k
        return m_unexpected;
474
2.28k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
2.39k
    {
473
2.39k
        return m_unexpected;
474
2.39k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
29.3k
    {
473
29.3k
        return m_unexpected;
474
29.3k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
57.2k
    {
473
57.2k
        return m_unexpected;
474
57.2k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
3.60k
    {
473
3.60k
        return m_unexpected;
474
3.60k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
976
    {
473
976
        return m_unexpected;
474
976
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
14.8k
    {
473
14.8k
        return m_unexpected;
474
14.8k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
1.44k
    {
473
1.44k
        return m_unexpected;
474
1.44k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
956
    {
473
956
        return m_unexpected;
474
956
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
28.6k
    {
473
28.6k
        return m_unexpected;
474
28.6k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
4.78k
    {
473
4.78k
        return m_unexpected;
474
4.78k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
1.91k
    {
473
1.91k
        return m_unexpected;
474
1.91k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
475
    constexpr const unexpected<E>& get_unexpected() const& noexcept
476
0
    {
477
0
        return m_unexpected;
478
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
479
    constexpr unexpected<E>&& get_unexpected() && noexcept
480
35.3k
    {
481
35.3k
        return std::move(m_unexpected);
482
35.3k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
480
11.7k
    {
481
11.7k
        return std::move(m_unexpected);
482
11.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
480
23.5k
    {
481
23.5k
        return std::move(m_unexpected);
482
23.5k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_unexpected() &&
483
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
484
    {
485
        return std::move(m_unexpected);
486
    }
487
488
    SCN_NODISCARD constexpr bool has_value() const noexcept
489
38.6M
    {
490
38.6M
        return m_has_value;
491
38.6M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
446k
    {
490
446k
        return m_has_value;
491
446k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
7.24M
    {
490
7.24M
        return m_has_value;
491
7.24M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
446k
    {
490
446k
        return m_has_value;
491
446k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
270k
    {
490
270k
        return m_has_value;
491
270k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
3.14M
    {
490
3.14M
        return m_has_value;
491
3.14M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
3.14M
    {
490
3.14M
        return m_has_value;
491
3.14M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
1.57M
    {
490
1.57M
        return m_has_value;
491
1.57M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
254k
    {
490
254k
        return m_has_value;
491
254k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
1.54M
    {
490
1.54M
        return m_has_value;
491
1.54M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
1.02M
    {
490
1.02M
        return m_has_value;
491
1.02M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
7.47M
    {
490
7.47M
        return m_has_value;
491
7.47M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
414k
    {
490
414k
        return m_has_value;
491
414k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
204k
    {
490
204k
        return m_has_value;
491
204k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
626k
    {
490
626k
        return m_has_value;
491
626k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
335k
    {
490
335k
        return m_has_value;
491
335k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
1.23M
    {
490
1.23M
        return m_has_value;
491
1.23M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
3.73M
    {
490
3.73M
        return m_has_value;
491
3.73M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
3.08M
    {
490
3.08M
        return m_has_value;
491
3.08M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
2.46M
    {
490
2.46M
        return m_has_value;
491
2.46M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
492
493
    template <typename... Args>
494
    void construct(Args&&... args) noexcept(
495
        std::is_nothrow_constructible_v<T, Args...>)
496
0
    {
497
0
        scn::detail::construct_at(&get_value(), std::forward<Args>(args)...);
498
0
        m_has_value = true;
499
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
500
    template <typename... Args>
501
    void construct_unexpected(Args&&... args) noexcept(
502
        std::is_nothrow_constructible_v<E, Args...>)
503
35.3k
    {
504
35.3k
        scn::detail::construct_at(&get_unexpected(),
505
35.3k
                                  std::forward<Args>(args)...);
506
35.3k
        m_has_value = false;
507
35.3k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
503
11.7k
    {
504
11.7k
        scn::detail::construct_at(&get_unexpected(),
505
11.7k
                                  std::forward<Args>(args)...);
506
11.7k
        m_has_value = false;
507
11.7k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
503
23.5k
    {
504
23.5k
        scn::detail::construct_at(&get_unexpected(),
505
23.5k
                                  std::forward<Args>(args)...);
506
23.5k
        m_has_value = false;
507
23.5k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
508
509
    // No-op, because T and E are trivially destructible
510
35.3k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
510
11.7k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
510
23.5k
    static constexpr void destroy_value() noexcept {}
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::destroy_value()
511
0
    static constexpr void destroy_unexpected() noexcept {}
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::destroy_unexpected()
512
513
private:
514
    union {
515
        T m_value;
516
        unexpected<E> m_unexpected;
517
        char m_deferred_init;
518
    };
519
    bool m_has_value;
520
};
521
522
template <typename E>
523
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, true> {
524
#if SCN_STD >= SCN_STD_20
525
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
526
#else
527
    constexpr expected_storage_base() noexcept
528
7.29M
        : m_deferred_init(), m_has_value(true)
529
7.29M
    {
530
7.29M
    }
531
#endif
532
533
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
534
        : m_deferred_init(), m_has_value(false)
535
    {
536
    }
537
538
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
539
        : m_has_value(true)
540
    {
541
    }
542
543
    template <typename... Args,
544
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
545
    explicit constexpr expected_storage_base(
546
        unexpect_t,
547
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
548
130k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
549
130k
          m_has_value(false)
550
130k
    {
551
130k
    }
552
553
    constexpr unexpected<E>& get_unexpected() & noexcept
554
97.8k
    {
555
97.8k
        return m_unexpected;
556
97.8k
    }
557
    constexpr const unexpected<E>& get_unexpected() const& noexcept
558
    {
559
        return m_unexpected;
560
    }
561
    constexpr unexpected<E>&& get_unexpected() && noexcept
562
    {
563
        return std::move(m_unexpected);
564
    }
565
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
566
    {
567
        return std::move(m_unexpected);
568
    }
569
570
    SCN_NODISCARD constexpr bool has_value() const noexcept
571
8.54M
    {
572
8.54M
        return m_has_value;
573
8.54M
    }
574
575
    template <typename... Args>
576
    void construct(Args&&...) noexcept
577
    {
578
        m_has_value = true;
579
    }
580
    template <typename... Args>
581
    void construct_unexpected(Args&&... args) noexcept(
582
        std::is_nothrow_constructible_v<E, Args...>)
583
    {
584
        scn::detail::construct_at(&get_unexpected(),
585
                                  std::forward<Args>(args)...);
586
        m_has_value = false;
587
    }
588
589
    static constexpr void destroy_value() noexcept {}
590
    static constexpr void destroy_unexpected() noexcept {}
591
592
private:
593
    union {
594
        unexpected<E> m_unexpected;
595
        char m_deferred_init;
596
    };
597
    bool m_has_value;
598
};
599
600
/**
601
 * Implementation of `std::max` without including `<algorithm>`
602
 */
603
template <typename T>
604
constexpr T max(T a, T b) noexcept
605
0
{
606
0
    return (a < b) ? b : a;
607
0
}
608
609
template <typename T, typename E>
610
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, false> {
611
1.82M
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
1.82M
    {
613
1.82M
        construct();
614
1.82M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
111k
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
111k
    {
613
111k
        construct();
614
111k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
135k
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
135k
    {
613
135k
        construct();
614
135k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
787k
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
787k
    {
613
787k
        construct();
614
787k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
787k
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
787k
    {
613
787k
        construct();
614
787k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
615
616
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
617
        : m_has_value(false)
618
    {
619
    }
620
621
    template <typename... Args,
622
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
623
    explicit constexpr expected_storage_base(
624
        std::in_place_t,
625
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
626
0
        : m_has_value(true)
627
0
    {
628
0
        construct(std::forward<Args>(args)...);
629
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
630
631
    template <typename... Args,
632
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
633
    explicit constexpr expected_storage_base(
634
        unexpect_t,
635
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
636
70.6k
        : m_has_value(false)
637
70.6k
    {
638
70.6k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
70.6k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
11.7k
        : m_has_value(false)
637
11.7k
    {
638
11.7k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
11.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
11.7k
        : m_has_value(false)
637
11.7k
    {
638
11.7k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
11.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
23.5k
        : m_has_value(false)
637
23.5k
    {
638
23.5k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
23.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
23.5k
        : m_has_value(false)
637
23.5k
    {
638
23.5k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
23.5k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
640
641
    ~expected_storage_base()
642
1.89M
    {
643
1.89M
        if (has_value()) {
644
1.75M
            destroy_value();
645
1.75M
        }
646
141k
        else {
647
141k
            destroy_unexpected();
648
141k
        }
649
1.89M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
123k
    {
643
123k
        if (has_value()) {
644
99.7k
            destroy_value();
645
99.7k
        }
646
23.5k
        else {
647
23.5k
            destroy_unexpected();
648
23.5k
        }
649
123k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
146k
    {
643
146k
        if (has_value()) {
644
123k
            destroy_value();
645
123k
        }
646
23.5k
        else {
647
23.5k
            destroy_unexpected();
648
23.5k
        }
649
146k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
810k
    {
643
810k
        if (has_value()) {
644
763k
            destroy_value();
645
763k
        }
646
47.1k
        else {
647
47.1k
            destroy_unexpected();
648
47.1k
        }
649
810k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
810k
    {
643
810k
        if (has_value()) {
644
763k
            destroy_value();
645
763k
        }
646
47.1k
        else {
647
47.1k
            destroy_unexpected();
648
47.1k
        }
649
810k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
650
651
    constexpr T& get_value() & noexcept
652
5.32M
    {
653
5.32M
        return *value_ptr();
654
5.32M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
310k
    {
653
310k
        return *value_ptr();
654
310k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
381k
    {
653
381k
        return *value_ptr();
654
381k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
2.31M
    {
653
2.31M
        return *value_ptr();
654
2.31M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
2.31M
    {
653
2.31M
        return *value_ptr();
654
2.31M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
655
    constexpr const T& get_value() const& noexcept
656
    {
657
        return *value_ptr();
658
    }
659
    constexpr T&& get_value() && noexcept
660
0
    {
661
0
        return std::move(*value_ptr());
662
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
663
    constexpr const T&& get_value() const&& noexcept
664
    {
665
        return std::move(*value_ptr());
666
    }
667
668
    constexpr unexpected<E>& get_unexpected() & noexcept
669
0
    {
670
0
        return *unexpected_ptr();
671
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
672
    constexpr const unexpected<E>& get_unexpected() const& noexcept
673
    {
674
        return *unexpected_ptr();
675
    }
676
    constexpr unexpected<E>&& get_unexpected() && noexcept
677
70.6k
    {
678
70.6k
        return std::move(*unexpected_ptr());
679
70.6k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
11.7k
    {
678
11.7k
        return std::move(*unexpected_ptr());
679
11.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
11.7k
    {
678
11.7k
        return std::move(*unexpected_ptr());
679
11.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
23.5k
    {
678
23.5k
        return std::move(*unexpected_ptr());
679
23.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
23.5k
    {
678
23.5k
        return std::move(*unexpected_ptr());
679
23.5k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
680
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
681
    {
682
        return std::move(*unexpected_ptr());
683
    }
684
685
    SCN_NODISCARD constexpr bool has_value() const noexcept
686
9.17M
    {
687
9.17M
        return m_has_value;
688
9.17M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
569k
    {
687
569k
        return m_has_value;
688
569k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
687k
    {
687
687k
        return m_has_value;
688
687k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
3.95M
    {
687
3.95M
        return m_has_value;
688
3.95M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
3.95M
    {
687
3.95M
        return m_has_value;
688
3.95M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
689
690
    template <typename... Args>
691
    void construct(Args&&... args) noexcept(
692
        std::is_nothrow_constructible_v<T, Args...>)
693
1.82M
    {
694
1.82M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
1.82M
        m_has_value = true;
696
1.82M
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
111k
    {
694
111k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
111k
        m_has_value = true;
696
111k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
135k
    {
694
135k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
135k
        m_has_value = true;
696
135k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
787k
    {
694
787k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
787k
        m_has_value = true;
696
787k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
787k
    {
694
787k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
787k
        m_has_value = true;
696
787k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
697
    template <typename... Args>
698
    void construct_unexpected(Args&&... args) noexcept(
699
        std::is_nothrow_constructible_v<E, Args...>)
700
141k
    {
701
141k
        scn::detail::construct_at(unexpected_ptr(),
702
141k
                                  std::forward<Args>(args)...);
703
141k
        m_has_value = false;
704
141k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
11.7k
    {
701
11.7k
        scn::detail::construct_at(unexpected_ptr(),
702
11.7k
                                  std::forward<Args>(args)...);
703
11.7k
        m_has_value = false;
704
11.7k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
11.7k
    {
701
11.7k
        scn::detail::construct_at(unexpected_ptr(),
702
11.7k
                                  std::forward<Args>(args)...);
703
11.7k
        m_has_value = false;
704
11.7k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
11.7k
    {
701
11.7k
        scn::detail::construct_at(unexpected_ptr(),
702
11.7k
                                  std::forward<Args>(args)...);
703
11.7k
        m_has_value = false;
704
11.7k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
11.7k
    {
701
11.7k
        scn::detail::construct_at(unexpected_ptr(),
702
11.7k
                                  std::forward<Args>(args)...);
703
11.7k
        m_has_value = false;
704
11.7k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
23.5k
    {
701
23.5k
        scn::detail::construct_at(unexpected_ptr(),
702
23.5k
                                  std::forward<Args>(args)...);
703
23.5k
        m_has_value = false;
704
23.5k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
23.5k
    {
701
23.5k
        scn::detail::construct_at(unexpected_ptr(),
702
23.5k
                                  std::forward<Args>(args)...);
703
23.5k
        m_has_value = false;
704
23.5k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
23.5k
    {
701
23.5k
        scn::detail::construct_at(unexpected_ptr(),
702
23.5k
                                  std::forward<Args>(args)...);
703
23.5k
        m_has_value = false;
704
23.5k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
23.5k
    {
701
23.5k
        scn::detail::construct_at(unexpected_ptr(),
702
23.5k
                                  std::forward<Args>(args)...);
703
23.5k
        m_has_value = false;
704
23.5k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
705
706
    void destroy_value() noexcept
707
1.82M
    {
708
1.82M
        scn::detail::destroy_at(value_ptr());
709
1.82M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
111k
    {
708
111k
        scn::detail::destroy_at(value_ptr());
709
111k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
135k
    {
708
135k
        scn::detail::destroy_at(value_ptr());
709
135k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
787k
    {
708
787k
        scn::detail::destroy_at(value_ptr());
709
787k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
787k
    {
708
787k
        scn::detail::destroy_at(value_ptr());
709
787k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
710
    void destroy_unexpected() noexcept
711
141k
    {
712
141k
        scn::detail::destroy_at(unexpected_ptr());
713
141k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
23.5k
    {
712
23.5k
        scn::detail::destroy_at(unexpected_ptr());
713
23.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
23.5k
    {
712
23.5k
        scn::detail::destroy_at(unexpected_ptr());
713
23.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
47.1k
    {
712
47.1k
        scn::detail::destroy_at(unexpected_ptr());
713
47.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
47.1k
    {
712
47.1k
        scn::detail::destroy_at(unexpected_ptr());
713
47.1k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
714
715
private:
716
    T* value_ptr() noexcept
717
8.96M
    {
718
8.96M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
8.96M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
533k
    {
718
533k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
533k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
651k
    {
718
651k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
651k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
3.88M
    {
718
3.88M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
3.88M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
3.88M
    {
718
3.88M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
3.88M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
720
    const T* value_ptr() const noexcept
721
    {
722
        return reinterpret_cast<const T*>(
723
            SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
724
    }
725
726
    SCN_GCC_PUSH
727
    SCN_GCC_IGNORE("-Wcast-align")
728
    unexpected<E>* unexpected_ptr() noexcept
729
353k
    {
730
353k
        return reinterpret_cast<unexpected<E>*>(
731
353k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
353k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
58.8k
    {
730
58.8k
        return reinterpret_cast<unexpected<E>*>(
731
58.8k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
58.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
58.8k
    {
730
58.8k
        return reinterpret_cast<unexpected<E>*>(
731
58.8k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
58.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
117k
    {
730
117k
        return reinterpret_cast<unexpected<E>*>(
731
117k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
117k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
117k
    {
730
117k
        return reinterpret_cast<unexpected<E>*>(
731
117k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
117k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
733
    const unexpected<E>* unexpected_ptr() const noexcept
734
    {
735
        return reinterpret_cast<const unexpected<E>*>(
736
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
737
    }
738
    SCN_GCC_POP
739
740
    static constexpr std::size_t required_size =
741
        detail::max(sizeof(T), sizeof(unexpected<E>));
742
    static constexpr std::size_t required_alignment =
743
        detail::max(alignof(T), alignof(unexpected<E>));
744
745
    alignas(required_alignment) unsigned char m_memory[required_size];
746
    bool m_has_value;
747
};
748
749
template <typename E>
750
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, false> {
751
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
752
753
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
754
        : m_has_value(false)
755
    {
756
    }
757
758
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
759
        : m_has_value(true)
760
    {
761
    }
762
763
    template <typename... Args,
764
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
765
    explicit constexpr expected_storage_base(
766
        unexpect_t,
767
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
768
        : m_has_value(false)
769
    {
770
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
771
    }
772
773
    ~expected_storage_base()
774
    {
775
        if (!has_value()) {
776
            destroy_unexpected();
777
        }
778
    }
779
780
    constexpr unexpected<E>& get_unexpected() & noexcept
781
    {
782
        return *unexpected_ptr();
783
    }
784
    constexpr const unexpected<E>& get_unexpected() const& noexcept
785
    {
786
        return *unexpected_ptr();
787
    }
788
    constexpr unexpected<E>&& get_unexpected() && noexcept
789
    {
790
        return std::move(*unexpected_ptr());
791
    }
792
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
793
    {
794
        return std::move(*unexpected_ptr());
795
    }
796
797
    SCN_NODISCARD constexpr bool has_value() const noexcept
798
    {
799
        return m_has_value;
800
    }
801
802
    template <typename... Args>
803
    constexpr void construct(Args&&...) noexcept
804
    {
805
        m_has_value = true;
806
    }
807
    template <typename... Args>
808
    void construct_unexpected(Args&&... args) noexcept(
809
        std::is_nothrow_constructible_v<E, Args...>)
810
    {
811
        scn::detail::construct_at(unexpected_ptr(),
812
                                  std::forward<Args>(args)...);
813
        m_has_value = false;
814
    }
815
816
    static constexpr void destroy_value() noexcept {}
817
    void destroy_unexpected() noexcept
818
    {
819
        scn::detail::destroy_at(unexpected_ptr());
820
    }
821
822
private:
823
    SCN_GCC_PUSH
824
    SCN_GCC_IGNORE("-Wcast-align")
825
    unexpected<E>* unexpected_ptr()
826
    {
827
        return reinterpret_cast<unexpected<E>*>(m_memory);
828
    }
829
    const unexpected<E>* unexpected_ptr() const
830
    {
831
        return reinterpret_cast<const unexpected<E>*>(m_memory);
832
    }
833
    SCN_GCC_POP
834
835
    static constexpr std::size_t required_size = sizeof(unexpected<E>);
836
    static constexpr std::size_t required_alignment = alignof(unexpected<E>);
837
838
    alignas(required_alignment) unsigned char m_memory[required_size];
839
    bool m_has_value;
840
};
841
842
template <typename T, typename U>
843
using is_void_or = std::conditional_t<std::is_void_v<T>, std::true_type, U>;
844
845
template <typename T, typename E, typename Enable = void>
846
struct expected_operations_base;
847
848
template <typename T, typename E>
849
struct SCN_TRIVIAL_ABI expected_operations_base<
850
    T,
851
    E,
852
    std::enable_if_t<(
853
        std::is_void_v<T> ||
854
        std::is_trivially_copyable_v<T>)&&std::is_trivially_copyable_v<E>>>
855
    : expected_storage_base<T, E> {
856
    using expected_storage_base<T, E>::expected_storage_base;
857
};
858
859
template <typename T, typename E>
860
struct SCN_TRIVIAL_ABI expected_operations_base<
861
    T,
862
    E,
863
    std::enable_if_t<!std::is_void_v<T> && (!std::is_trivially_copyable_v<T> ||
864
                                            !std::is_trivially_copyable_v<E>)>>
865
    : expected_storage_base<T, E> {
866
    using expected_storage_base<T, E>::expected_storage_base;
867
868
    expected_operations_base(const expected_operations_base& other) noexcept(
869
        std::is_nothrow_copy_constructible_v<T> &&
870
        std::is_nothrow_copy_constructible_v<E>)
871
        : expected_storage_base<T, E>(deferred_init_tag)
872
    {
873
        construct_common(other);
874
    }
875
    expected_operations_base(expected_operations_base&& other) noexcept(
876
        std::is_nothrow_move_constructible_v<T> &&
877
        std::is_nothrow_move_constructible_v<E>)
878
        : expected_storage_base<T, E>(deferred_init_tag)
879
    {
880
        construct_common(std::move(other));
881
    }
882
883
    expected_operations_base& operator=(const expected_operations_base& other)
884
    // gcc 11 and lower evaluate noexcept in a weird context
885
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
886
        noexcept(noexcept(
887
            SCN_DECLVAL(expected_operations_base&).assign_common(other)))
888
#else
889
        noexcept(noexcept(assign_common(other)))
890
#endif
891
    {
892
        assign_common(other);
893
        return *this;
894
    }
895
    expected_operations_base& operator=(expected_operations_base&& other)
896
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
897
        noexcept(noexcept(SCN_DECLVAL(expected_operations_base&)
898
                              .assign_common(std::move(other))))
899
#else
900
        noexcept(noexcept(assign_common(std::move(other))))
901
#endif
902
106k
    {
903
106k
        assign_common(std::move(other));
904
106k
        return *this;
905
106k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
11.7k
    {
903
11.7k
        assign_common(std::move(other));
904
11.7k
        return *this;
905
11.7k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
11.7k
    {
903
11.7k
        assign_common(std::move(other));
904
11.7k
        return *this;
905
11.7k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
11.7k
    {
903
11.7k
        assign_common(std::move(other));
904
11.7k
        return *this;
905
11.7k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
23.5k
    {
903
23.5k
        assign_common(std::move(other));
904
23.5k
        return *this;
905
23.5k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
23.5k
    {
903
23.5k
        assign_common(std::move(other));
904
23.5k
        return *this;
905
23.5k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
23.5k
    {
903
23.5k
        assign_common(std::move(other));
904
23.5k
        return *this;
905
23.5k
    }
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
906
907
    ~expected_operations_base() = default;
908
909
private:
910
    template <typename Other>
911
    void construct_common(Other&& other) noexcept(
912
        noexcept(SCN_DECLVAL(expected_storage_base<T, E>)
913
                     .construct(std::forward<Other>(other).get_value())) &&
914
        noexcept(SCN_DECLVAL(expected_storage_base<T, E>)
915
                     .construct_unexpected(
916
                         std::forward<Other>(other).get_unexpected())))
917
0
    {
918
0
        if (other.has_value()) {
919
0
            this->construct(std::forward<Other>(other).get_value());
920
0
        }
921
0
        else {
922
0
            this->construct_unexpected(
923
0
                std::forward<Other>(other).get_unexpected());
924
0
        }
925
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
926
927
    template <typename Other>
928
    void assign_common(Other&& other)
929
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
930
        noexcept(
931
            noexcept(SCN_DECLVAL(expected_operations_base&)
932
                         .reassign_value(std::forward<Other>(other))) &&
933
            noexcept(SCN_DECLVAL(expected_operations_base&)
934
                         .reassign_unexpected(std::forward<Other>(other))) &&
935
            noexcept(SCN_DECLVAL(expected_operations_base&)
936
                         .assign_value_over_unexpected(
937
                             std::forward<Other>(other))) &&
938
            noexcept(
939
                SCN_DECLVAL(expected_operations_base&)
940
                    .assign_unexpected_over_value(std::forward<Other>(other))))
941
#else
942
        noexcept(
943
            noexcept(reassign_value(std::forward<Other>(other))) &&
944
            noexcept(reassign_unexpected(std::forward<Other>(other))) &&
945
            noexcept(
946
                assign_value_over_unexpected(std::forward<Other>(other))) &&
947
            noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
948
#endif
949
106k
    {
950
106k
        if (this->has_value()) {
951
106k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
106k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
106k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
11.7k
    {
950
11.7k
        if (this->has_value()) {
951
11.7k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
11.7k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
11.7k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
11.7k
    {
950
11.7k
        if (this->has_value()) {
951
11.7k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
11.7k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
11.7k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
11.7k
    {
950
11.7k
        if (this->has_value()) {
951
11.7k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
11.7k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
11.7k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
23.5k
    {
950
23.5k
        if (this->has_value()) {
951
23.5k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
23.5k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
23.5k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
23.5k
    {
950
23.5k
        if (this->has_value()) {
951
23.5k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
23.5k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
23.5k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
23.5k
    {
950
23.5k
        if (this->has_value()) {
951
23.5k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
23.5k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
23.5k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
962
963
    template <typename Other>
964
    void reassign_value(Other&& other) noexcept(
965
        std::is_nothrow_assignable_v<
966
            T,
967
            decltype(std::forward<Other>(other).get_value())>)
968
0
    {
969
0
        this->get_value() = std::forward<Other>(other).get_value();
970
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
971
972
    template <typename Other>
973
    void reassign_unexpected(Other&& other) noexcept(
974
        std::is_nothrow_assignable_v<
975
            E,
976
            decltype(std::forward<Other>(other).get_unexpected())>)
977
0
    {
978
0
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
979
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
980
981
#if SCN_HAS_EXCEPTIONS
982
    void assign_value_over_unexpected(
983
        const expected_operations_base&
984
            other) noexcept(std::is_nothrow_copy_constructible_v<T> ||
985
                            std::is_nothrow_move_constructible_v<T>)
986
    {
987
        if constexpr (std::is_nothrow_copy_constructible_v<T>) {
988
            this->destroy_unexpected();
989
            this->construct(other.get_value());
990
        }
991
        else if constexpr (std::is_nothrow_move_constructible_v<T>) {
992
            T tmp = other.get_value();
993
            this->destroy_unexpected();
994
            this->construct(std::move(tmp));
995
        }
996
        else {
997
            auto tmp = std::move(this->get_unexpecetd());
998
            this->destroy_unexpected();
999
1000
            try {
1001
                this->construct(other.get());
1002
            }
1003
            catch (...) {
1004
                this->construct_unexpected(std::move(tmp));
1005
                throw;
1006
            }
1007
        }
1008
    }
1009
1010
    void
1011
    assign_value_over_unexpected(expected_operations_base&& other) noexcept(
1012
        std::is_nothrow_move_constructible_v<T>)
1013
0
    {
1014
0
        if constexpr (std::is_nothrow_move_constructible_v<T>) {
1015
0
            this->destroy_unexpected();
1016
0
            this->construct(std::move(other).get_value());
1017
        }
1018
        else {
1019
            auto tmp = std::move(this->get_unexpected());
1020
            this->destroy_unexpected();
1021
1022
            try {
1023
                this->construct(std::move(other).get_value());
1024
            }
1025
            catch (...) {
1026
                this->construct_unexpected(std::move(tmp));
1027
                throw;
1028
            }
1029
        }
1030
0
    }
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
1031
#else
1032
    template <typename Other>
1033
    void assing_value_over_unexpected(Other&& other) noexcept
1034
    {
1035
        this->destroy_unexpected();
1036
        this->construct_value(std::forward<Other>(other).get_value());
1037
    }
1038
#endif
1039
1040
    template <typename Other>
1041
    void assign_unexpected_over_value(Other&& other) noexcept(
1042
        std::is_nothrow_constructible_v<
1043
            E,
1044
            decltype(std::forward<Other>(other).get_unexpected())>)
1045
106k
    {
1046
106k
        this->destroy_value();
1047
106k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
106k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
11.7k
    {
1046
11.7k
        this->destroy_value();
1047
11.7k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
11.7k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
11.7k
    {
1046
11.7k
        this->destroy_value();
1047
11.7k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
11.7k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
11.7k
    {
1046
11.7k
        this->destroy_value();
1047
11.7k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
11.7k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
23.5k
    {
1046
23.5k
        this->destroy_value();
1047
23.5k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
23.5k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
23.5k
    {
1046
23.5k
        this->destroy_value();
1047
23.5k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
23.5k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
23.5k
    {
1046
23.5k
        this->destroy_value();
1047
23.5k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
23.5k
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
1049
};
1050
1051
template <typename E>
1052
struct SCN_TRIVIAL_ABI
1053
    expected_operations_base<void,
1054
                             E,
1055
                             std::enable_if_t<!std::is_trivially_copyable_v<E>>>
1056
    : expected_storage_base<void, E> {
1057
    using expected_storage_base<void, E>::expected_storage_base;
1058
1059
    expected_operations_base(const expected_operations_base& other) noexcept(
1060
        std::is_nothrow_copy_constructible_v<E>)
1061
        : expected_storage_base<void, E>(deferred_init_tag)
1062
    {
1063
        construct_common(other);
1064
    }
1065
    expected_operations_base(expected_operations_base&& other) noexcept(
1066
        std::is_nothrow_move_constructible_v<E>)
1067
        : expected_storage_base<void, E>(deferred_init_tag)
1068
    {
1069
        construct_common(std::move(other));
1070
    }
1071
1072
    expected_operations_base& operator=(const expected_operations_base& other)
1073
    // gcc 11 and lower evaluate noexcept in a weird context
1074
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1075
        noexcept(noexcept(
1076
            SCN_DECLVAL(expected_operations_base&).assign_common(other)))
1077
#else
1078
        noexcept(noexcept(assign_common(other)))
1079
#endif
1080
    {
1081
        assign_common(other);
1082
        return *this;
1083
    }
1084
    expected_operations_base& operator=(expected_operations_base&& other)
1085
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1086
        noexcept(noexcept(SCN_DECLVAL(expected_operations_base&)
1087
                              .assign_common(std::move(other))))
1088
#else
1089
        noexcept(noexcept(assign_common(std::move(other))))
1090
#endif
1091
    {
1092
        assign_common(std::move(other));
1093
        return *this;
1094
    }
1095
1096
    ~expected_operations_base() = default;
1097
1098
private:
1099
    template <typename Other>
1100
    void construct_common(Other&& other) noexcept(
1101
        noexcept(expected_storage_base<void, E>::construct_unexpected(
1102
            std::forward<Other>(other).get_unexpected())))
1103
    {
1104
        if (other.has_value()) {
1105
            this->construct();
1106
        }
1107
        else {
1108
            this->construct_unexpected(
1109
                std::forward<Other>(other).get_unexpected());
1110
        }
1111
    }
1112
1113
    template <typename Other>
1114
    void assign_common(Other&& other)
1115
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1116
        noexcept(
1117
            noexcept(SCN_DECLVAL(expected_operations_base&)
1118
                         .reassign_unexpected(std::forward<Other>(other))) &&
1119
            noexcept(
1120
                SCN_DECLVAL(expected_operations_base&)
1121
                    .assign_unexpected_over_value(std::forward<Other>(other))))
1122
#else
1123
        noexcept(
1124
            noexcept(reassign_unexpected(std::forward<Other>(other))) &&
1125
            noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
1126
#endif
1127
    {
1128
        if (this->has_value()) {
1129
            if (other.has_value()) {
1130
                return reassign_value();
1131
            }
1132
            return assign_unexpected_over_value(std::forward<Other>(other));
1133
        }
1134
1135
        if (other.has_value()) {
1136
            return assign_value_over_unexpected();
1137
        }
1138
        return reassign_unexpected(std::forward<Other>(other));
1139
    }
1140
1141
    void reassign_value() noexcept {}
1142
1143
    template <typename Other>
1144
    void reassign_unexpected(Other&& other) noexcept(
1145
        std::is_nothrow_assignable_v<
1146
            E,
1147
            decltype(std::forward<Other>(other).get_unexpected())>)
1148
    {
1149
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
1150
    }
1151
1152
    void assign_value_over_unexpected() noexcept
1153
    {
1154
        this->destroy_unexpected();
1155
        this->construct();
1156
    }
1157
1158
    template <typename Other>
1159
    void assign_unexpected_over_value(Other&& other) noexcept(
1160
        std::is_nothrow_constructible_v<
1161
            E,
1162
            decltype(std::forward<Other>(other).get_unexpected())>)
1163
    {
1164
        this->destroy_value();
1165
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1166
    }
1167
};
1168
1169
/*
1170
 * Base class trickery to conditionally mark copy and move
1171
 * constructors of an expected as =deleted.
1172
 *
1173
 * We need to do this, because otherwise utilities like
1174
 * std::is_copy_constructible wouldn't work for expected: the
1175
 * constructors need to be explicitly =deleted, not just cause a
1176
 * compiler error when trying to copy a value of a non-copyable
1177
 * type.
1178
 *
1179
 * Rationale for doing this with base classes is above.
1180
 */
1181
template <
1182
    typename T,
1183
    typename E,
1184
    bool EnableCopy = ((std::is_copy_constructible_v<T> ||
1185
                        std::is_void_v<T>)&&std::is_copy_constructible_v<E>),
1186
    bool EnableMove = ((std::is_move_constructible_v<T> ||
1187
                        std::is_void_v<T>)&&std::is_move_constructible_v<E>)>
1188
struct expected_delete_ctor_base;
1189
1190
// Implementation for types that are both copy and move
1191
// constructible: Copy and move constructors are =defaulted
1192
template <typename T, typename E>
1193
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, true> {
1194
    expected_delete_ctor_base() = default;
1195
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1196
        default;
1197
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1198
    ~expected_delete_ctor_base() = default;
1199
1200
    expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
1201
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1202
};
1203
1204
// Implementation for types that are neither copy nor move
1205
// constructible: Copy and move constructors are =deleted
1206
template <typename T, typename E>
1207
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, false> {
1208
    expected_delete_ctor_base() = default;
1209
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1210
        default;
1211
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1212
    ~expected_delete_ctor_base() = default;
1213
1214
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1215
    expected_delete_ctor_base(expected_delete_ctor_base&&) = delete;
1216
};
1217
1218
// Implementation for types that are move constructible, but not
1219
// copy constructible Copy constructor is =deleted, but move
1220
// constructor is =defaulted
1221
template <typename T, typename E>
1222
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, true> {
1223
    expected_delete_ctor_base() = default;
1224
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1225
        default;
1226
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1227
    ~expected_delete_ctor_base() = default;
1228
1229
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1230
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1231
};
1232
1233
template <typename T, typename E>
1234
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, false> {
1235
    static_assert(dependent_false<T>::value,
1236
                  "Nonsensical type: copy constructible, but not move "
1237
                  "constructible");
1238
};
1239
1240
// Same as above, but for assignment
1241
template <
1242
    typename T,
1243
    typename E,
1244
    bool EnableCopy = ((std::is_copy_constructible_v<T> ||
1245
                        std::is_void_v<T>)&&std::is_copy_constructible_v<E> &&
1246
                       (std::is_copy_assignable_v<T> ||
1247
                        std::is_void_v<T>)&&std::is_copy_assignable_v<E>),
1248
    bool EnableMove = ((std::is_move_constructible_v<T> ||
1249
                        std::is_void_v<T>)&&std::is_move_constructible_v<E> &&
1250
                       (std::is_move_assignable_v<T> ||
1251
                        std::is_void_v<T>)&&std::is_move_assignable_v<E>)>
1252
struct expected_delete_assign_base;
1253
1254
template <typename T, typename E>
1255
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, true> {
1256
    expected_delete_assign_base() = default;
1257
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1258
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1259
    ~expected_delete_assign_base() = default;
1260
1261
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1262
        default;
1263
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1264
        default;
1265
};
1266
1267
template <typename T, typename E>
1268
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, false> {
1269
    expected_delete_assign_base() = default;
1270
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1271
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1272
    ~expected_delete_assign_base() = default;
1273
1274
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1275
        delete;
1276
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1277
        delete;
1278
};
1279
1280
template <typename T, typename E>
1281
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, true> {
1282
    expected_delete_assign_base() = default;
1283
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1284
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1285
    ~expected_delete_assign_base() = default;
1286
1287
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1288
        delete;
1289
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1290
        default;
1291
};
1292
1293
template <typename T, typename E>
1294
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, false> {
1295
    static_assert(dependent_false<T>::value,
1296
                  "Nonsensical type: copy assignable, but not move "
1297
                  "assignable");
1298
};
1299
1300
struct non_default_ctor_tag_t {};
1301
1302
/*
1303
 * Same as above, but for the default constructor
1304
 *
1305
 * The constructor taking a non_default_ctor_tag_t is needed, to
1306
 * signal that we're not default constructing.
1307
 */
1308
template <typename T,
1309
          typename E,
1310
          bool = std::is_default_constructible_v<T> || std::is_void_v<T>>
1311
struct SCN_TRIVIAL_ABI expected_default_ctor_base {
1312
    constexpr expected_default_ctor_base() = default;
1313
    constexpr explicit expected_default_ctor_base(
1314
        non_default_ctor_tag_t) noexcept
1315
16.8M
    {
1316
16.8M
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
11.7k
    {
1316
11.7k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
223k
    {
1316
223k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
11.7k
    {
1316
11.7k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
11.7k
    {
1316
11.7k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
135k
    {
1316
135k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
23.5k
    {
1316
23.5k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
1.57M
    {
1316
1.57M
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
23.5k
    {
1316
23.5k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
23.5k
    {
1316
23.5k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
787k
    {
1316
787k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
313k
    {
1316
313k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
1.86M
    {
1316
1.86M
    }
scn::v4::detail::expected_default_ctor_base<long, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
2.71M
    {
1316
2.71M
    }
scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
514k
    {
1316
514k
    }
scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
3.73M
    {
1316
3.73M
    }
scn::v4::detail::expected_default_ctor_base<void, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
130k
    {
1316
130k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
127k
    {
1316
127k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
102k
    {
1316
102k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
207k
    {
1316
207k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
167k
    {
1316
167k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
772k
    {
1316
772k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
617k
    {
1316
617k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
1.54M
    {
1316
1.54M
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
1.23M
    {
1316
1.23M
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<wchar_t, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
1317
};
1318
template <typename T, typename E>
1319
struct SCN_TRIVIAL_ABI expected_default_ctor_base<T, E, false> {
1320
    constexpr expected_default_ctor_base() = delete;
1321
    constexpr explicit expected_default_ctor_base(
1322
        non_default_ctor_tag_t) noexcept
1323
    {
1324
    }
1325
};
1326
1327
template <typename T>
1328
using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
1329
1330
template <typename T>
1331
struct is_expected_impl : std::false_type {};
1332
template <typename T, typename E>
1333
struct is_expected_impl<expected<T, E>> : std::true_type {};
1334
template <typename T>
1335
using is_expected = is_expected_impl<remove_cvref_t<T>>;
1336
1337
template <typename Exp>
1338
using is_exp_void = std::is_void<typename remove_cvref_t<Exp>::value_type>;
1339
1340
template <typename Exp>
1341
using expected_value_type = typename remove_cvref_t<Exp>::value_type;
1342
1343
template <
1344
    typename F,
1345
    typename... Args,
1346
    typename = std::void_t<decltype(SCN_DECLVAL(F&&)(SCN_DECLVAL(Args&&)...))>>
1347
constexpr decltype(auto) trivial_invoke(F&& f, Args&&... args) noexcept(
1348
    noexcept(std::forward<F>(f)(std::forward<Args>(args)...)))
1349
13.0k
{
1350
13.0k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1351
13.0k
}
decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&&)
Line
Count
Source
1349
13.0k
{
1350
13.0k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1351
13.0k
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error&&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error&, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error const&, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error const&)
1352
1353
// and_then
1354
1355
template <typename Exp,
1356
          typename F,
1357
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1358
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1359
                                                 *SCN_DECLVAL(Exp)))>
1360
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1361
    noexcept(trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))) &&
1362
    std::is_nothrow_constructible_v<Ret,
1363
                                    unexpect_t,
1364
                                    decltype(std::forward<Exp>(exp).error())>)
1365
{
1366
    static_assert(is_expected<Ret>::value, "F must return an expected");
1367
1368
    return SCN_LIKELY(exp.has_value())
1369
               ? trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))
1370
               : Ret(unexpect, std::forward<Exp>(exp).error());
1371
}
1372
template <typename Exp,
1373
          typename F,
1374
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1375
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1376
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1377
    noexcept(trivial_invoke(std::forward<F>(f))) &&
1378
    std::is_nothrow_constructible_v<Ret,
1379
                                    unexpect_t,
1380
                                    decltype(std::forward<Exp>(exp).error())>)
1381
{
1382
    static_assert(is_expected<Ret>::value, "F must return an expected");
1383
1384
    return SCN_LIKELY(exp.has_value())
1385
               ? trivial_invoke(std::forward<F>(f))
1386
               : Ret(unexpect, std::forward<Exp>(exp).error());
1387
}
1388
1389
// or_else
1390
1391
template <typename Exp,
1392
          typename F,
1393
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1394
                                                 SCN_DECLVAL(Exp).error()))>
1395
constexpr auto or_else_impl(Exp&& exp, F&& f) noexcept(
1396
    noexcept(trivial_invoke(std::forward<F>(f),
1397
                            std::forward<Exp>(exp).error())) &&
1398
    std::is_nothrow_constructible_v<Ret, decltype(std::forward<Exp>(exp))>)
1399
{
1400
    static_assert(is_expected<Ret>::value, "F must return an expected");
1401
1402
    return SCN_LIKELY(exp.has_value())
1403
               ? Ret(std::forward<Exp>(exp))
1404
               : trivial_invoke(std::forward<F>(f),
1405
                                std::forward<Exp>(exp).error());
1406
}
1407
1408
// transform
1409
1410
template <typename Exp,
1411
          typename F,
1412
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1413
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1414
                                                 *SCN_DECLVAL(Exp)))>
1415
constexpr auto transform_impl(Exp&& exp, F&& f)
1416
{
1417
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1418
    if constexpr (std::is_void_v<Ret>) {
1419
        if (SCN_LIKELY(exp.has_value())) {
1420
            trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp));
1421
            return result();
1422
        }
1423
        return result(unexpect, std::forward<Exp>(exp).error());
1424
    }
1425
    else {
1426
        return SCN_LIKELY(exp.has_value())
1427
                   ? result(trivial_invoke(std::forward<F>(f),
1428
                                           *std::forward<Exp>(exp)))
1429
                   : result(unexpect, std::forward<Exp>(exp).error());
1430
    }
1431
}
1432
template <typename Exp,
1433
          typename F,
1434
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1435
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1436
constexpr auto transform_impl(Exp&& exp, F&& f)
1437
{
1438
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1439
    if constexpr (std::is_void_v<Ret>) {
1440
        if (SCN_LIKELY(exp.has_value())) {
1441
            trivial_invoke(std::forward<F>(f));
1442
            return result();
1443
        }
1444
        return result(unexpect, std::forward<Exp>(exp).error());
1445
    }
1446
    else {
1447
        return SCN_LIKELY(exp.has_value())
1448
                   ? result(trivial_invoke(std::forward<F>(f)))
1449
                   : result(unexpect, std::forward<Exp>(exp).error());
1450
    }
1451
}
1452
1453
// transform_error
1454
1455
template <typename Exp,
1456
          typename F,
1457
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1458
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1459
                                                 SCN_DECLVAL(Exp).error()))>
1460
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1461
2.65M
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
2.65M
    else {
1472
2.65M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
2.65M
        return SCN_LIKELY(exp.has_value())
1474
2.65M
                   ? result(*std::forward<Exp>(exp))
1475
2.65M
                   : result(unexpect,
1476
13.0k
                            trivial_invoke(std::forward<F>(f),
1477
13.0k
                                           std::forward<Exp>(exp).error()));
1478
2.65M
    }
1479
2.65M
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Line
Count
Source
1461
127k
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
127k
    else {
1472
127k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
127k
        return SCN_LIKELY(exp.has_value())
1474
127k
                   ? result(*std::forward<Exp>(exp))
1475
127k
                   : result(unexpect,
1476
2.28k
                            trivial_invoke(std::forward<F>(f),
1477
2.28k
                                           std::forward<Exp>(exp).error()));
1478
127k
    }
1479
127k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Line
Count
Source
1461
772k
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
772k
    else {
1472
772k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
772k
        return SCN_LIKELY(exp.has_value())
1474
772k
                   ? result(*std::forward<Exp>(exp))
1475
772k
                   : result(unexpect,
1476
2.39k
                            trivial_invoke(std::forward<F>(f),
1477
2.39k
                                           std::forward<Exp>(exp).error()));
1478
772k
    }
1479
772k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Line
Count
Source
1461
207k
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
207k
    else {
1472
207k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
207k
        return SCN_LIKELY(exp.has_value())
1474
207k
                   ? result(*std::forward<Exp>(exp))
1475
207k
                   : result(unexpect,
1476
3.60k
                            trivial_invoke(std::forward<F>(f),
1477
3.60k
                                           std::forward<Exp>(exp).error()));
1478
207k
    }
1479
207k
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSQ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeES5_EUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSQ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
_ZN3scn2v46detail20transform_error_implINS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Line
Count
Source
1461
1.54M
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
1.54M
    else {
1472
1.54M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
1.54M
        return SCN_LIKELY(exp.has_value())
1474
1.54M
                   ? result(*std::forward<Exp>(exp))
1475
1.54M
                   : result(unexpect,
1476
4.78k
                            trivial_invoke(std::forward<F>(f),
1477
4.78k
                                           std::forward<Exp>(exp).error()));
1478
1.54M
    }
1479
1.54M
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESQ_EEDaOSV_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESP_EEDaOSU_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESL_EEDaOSP_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESK_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeES5_EUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESQ_EEDaOSV_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESP_EEDaOSU_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESL_EEDaOSP_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESK_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSS_OT0_
1480
template <typename Exp,
1481
          typename F,
1482
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1483
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1484
                                                 SCN_DECLVAL(Exp).error()))>
1485
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1486
{
1487
    if constexpr (std::is_void_v<Ret>) {
1488
        using result = expected<expected_value_type<Exp>, monostate>;
1489
        if (SCN_LIKELY(exp.has_value())) {
1490
            return result();
1491
        }
1492
1493
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1494
        return result(unexpect, monostate{});
1495
    }
1496
    else {
1497
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1498
        return SCN_LIKELY(exp.has_value())
1499
                   ? result()
1500
                   : result(unexpect,
1501
                            trivial_invoke(std::forward<F>(f),
1502
                                           std::forward<Exp>(exp).error()));
1503
    }
1504
}
1505
1506
template <class T, class E, class U, class G, class UR, class GR>
1507
using enable_from_other =
1508
    std::enable_if_t<std::is_constructible_v<T, UR> &&
1509
                     std::is_constructible_v<E, GR> &&
1510
                     !std::is_constructible_v<T, expected<U, G>&> &&
1511
                     !std::is_constructible_v<T, expected<U, G>&&> &&
1512
                     !std::is_constructible_v<T, const expected<U, G>&> &&
1513
                     !std::is_constructible_v<T, const expected<U, G>&&> &&
1514
                     !std::is_convertible_v<expected<U, G>&, T> &&
1515
                     !std::is_convertible_v<expected<U, G>&&, T> &&
1516
                     !std::is_convertible_v<const expected<U, G>&, T> &&
1517
                     !std::is_convertible_v<const expected<U, G>&&, T>>;
1518
}  // namespace detail
1519
1520
/**
1521
 * \see `std::expected`
1522
 */
1523
template <typename T, typename E>
1524
class SCN_TRIVIAL_ABI expected
1525
    : private detail::expected_operations_base<T, E>,
1526
      private detail::expected_delete_ctor_base<T, E>,
1527
      private detail::expected_delete_assign_base<T, E>,
1528
      private detail::expected_default_ctor_base<T, E> {
1529
    using base = detail::expected_operations_base<T, E>;
1530
    using ctor_base = detail::expected_default_ctor_base<T, E>;
1531
1532
    static_assert(std::is_void_v<T> || std::is_destructible_v<T>,
1533
                  "T must be void or Destructible");
1534
    static_assert(std::is_destructible_v<E>, "E must be Destructible");
1535
1536
    static_assert(!std::is_same_v<std::remove_cv_t<T>, std::in_place_t>);
1537
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpect_t>);
1538
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpected<E>>);
1539
1540
public:
1541
    using value_type = T;
1542
    using error_type = E;
1543
    using unexpected_type = unexpected<E>;
1544
1545
    template <typename U>
1546
    using rebind = expected<U, error_type>;
1547
1548
    // Special member functions are defaulted, implementations provided
1549
    // by base classes
1550
1551
10.0M
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
111k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
111k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
135k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
787k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
787k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
787k
    constexpr expected() = default;
scn::v4::expected<void, scn::v4::scan_error>::expected()
Line
Count
Source
1551
7.29M
    constexpr expected() = default;
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
1552
1553
    constexpr expected(const expected&) = default;
1554
    constexpr expected(expected&&) = default;
1555
    constexpr expected& operator=(const expected&) = default;
1556
106k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
11.7k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
11.7k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
11.7k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
23.5k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
23.5k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
23.5k
    constexpr expected& operator=(expected&&) = default;
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
1557
1558
    ~expected() = default;
1559
1560
    /**
1561
     * Construct an expected value.
1562
     * Intentionally non-explicit, to make constructing an expected
1563
     * value as transparent as possible.
1564
     */
1565
    template <typename U = value_type,
1566
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1567
    SCN_IMPLICIT constexpr expected(U&& val) noexcept(
1568
        std::is_nothrow_constructible_v<base, std::in_place_t, U&&>)
1569
16.2M
        : base(std::in_place, std::forward<U>(val)),
1570
16.2M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
16.2M
    {
1572
16.2M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
1569
199k
        : base(std::in_place, std::forward<U>(val)),
1570
199k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
199k
    {
1572
199k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
1569
123k
        : base(std::in_place, std::forward<U>(val)),
1570
123k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
123k
    {
1572
123k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
1569
1.52M
        : base(std::in_place, std::forward<U>(val)),
1570
1.52M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.52M
    {
1572
1.52M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
1569
763k
        : base(std::in_place, std::forward<U>(val)),
1570
763k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
763k
    {
1572
763k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1569
297k
        : base(std::in_place, std::forward<U>(val)),
1570
297k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
297k
    {
1572
297k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1569
1.83M
        : base(std::in_place, std::forward<U>(val)),
1570
1.83M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.83M
    {
1572
1.83M
    }
scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1569
483k
        : base(std::in_place, std::forward<U>(val)),
1570
483k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
483k
    {
1572
483k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1569
3.67M
        : base(std::in_place, std::forward<U>(val)),
1570
3.67M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
3.67M
    {
1572
3.67M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1569
124k
        : base(std::in_place, std::forward<U>(val)),
1570
124k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
124k
    {
1572
124k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
1569
101k
        : base(std::in_place, std::forward<U>(val)),
1570
101k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
101k
    {
1572
101k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<char const*, scn::v4::impl::eof_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1569
203k
        : base(std::in_place, std::forward<U>(val)),
1570
203k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
203k
    {
1572
203k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::expected<std::__1::pair<char const*, long>, void>(std::__1::pair<char const*, long>&&)
Line
Count
Source
1569
166k
        : base(std::in_place, std::forward<U>(val)),
1570
166k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
166k
    {
1572
166k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<char const*&, void>(char const*&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<char const*, void>(char const*&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<long, scn::v4::scan_error>::expected<long, void>(long&&)
Line
Count
Source
1569
2.61M
        : base(std::in_place, std::forward<U>(val)),
1570
2.61M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
2.61M
    {
1572
2.61M
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const*&, void>(char const*&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
1569
708
        : base(std::in_place, std::forward<U>(val)),
1570
708
          ctor_base(detail::non_default_ctor_tag_t{})
1571
708
    {
1572
708
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const* const&, void>(char const* const&)
Line
Count
Source
1569
1.41k
        : base(std::in_place, std::forward<U>(val)),
1570
1.41k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.41k
    {
1572
1.41k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1569
770k
        : base(std::in_place, std::forward<U>(val)),
1570
770k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
770k
    {
1572
770k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
1569
616k
        : base(std::in_place, std::forward<U>(val)),
1570
616k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
616k
    {
1572
616k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1569
1.54M
        : base(std::in_place, std::forward<U>(val)),
1570
1.54M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.54M
    {
1572
1.54M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::expected<std::__1::pair<wchar_t const*, long>, void>(std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
1569
1.23M
        : base(std::in_place, std::forward<U>(val)),
1570
1.23M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.23M
    {
1572
1.23M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
1569
126
        : base(std::in_place, std::forward<U>(val)),
1570
126
          ctor_base(detail::non_default_ctor_tag_t{})
1571
126
    {
1572
126
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const* const&, void>(wchar_t const* const&)
Line
Count
Source
1569
252
        : base(std::in_place, std::forward<U>(val)),
1570
252
          ctor_base(detail::non_default_ctor_tag_t{})
1571
252
    {
1572
252
    }
Unexecuted instantiation: scn::v4::expected<long, scn::v4::scan_error>::expected<int, void>(int&&)
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::expected<wchar_t, void>(wchar_t&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, void>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
1573
1574
    /// Construct an expected value directly in-place
1575
    template <typename... Args,
1576
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
1577
    explicit constexpr expected(std::in_place_t, Args&&... args) noexcept(
1578
        std::is_nothrow_constructible_v<base, std::in_place_t, Args&&...>)
1579
        : base(std::in_place, std::forward<Args>(args)...),
1580
          ctor_base(detail::non_default_ctor_tag_t{})
1581
    {
1582
    }
1583
1584
    template <typename G = E,
1585
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1586
              std::enable_if_t<!std::is_convertible_v<const G&, E>>* = nullptr>
1587
    explicit constexpr expected(const unexpected<G>& e) noexcept(
1588
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1589
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1590
    {
1591
    }
1592
    template <typename G = E,
1593
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1594
              std::enable_if_t<std::is_convertible_v<const G&, E>>* = nullptr>
1595
    SCN_IMPLICIT constexpr expected(const unexpected<G>& e) noexcept(
1596
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1597
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1598
    {
1599
    }
1600
1601
    template <typename G = E,
1602
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1603
              std::enable_if_t<!std::is_convertible_v<G&&, E>>* = nullptr>
1604
    explicit constexpr expected(unexpected<G>&& e) noexcept(
1605
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1606
        : base(unexpect, std::move(e.error())),
1607
          ctor_base(detail::non_default_ctor_tag_t{})
1608
    {
1609
    }
1610
    template <typename G = E,
1611
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1612
              std::enable_if_t<std::is_convertible_v<G&&, E>>* = nullptr>
1613
    SCN_IMPLICIT constexpr expected(unexpected<G>&& e) noexcept(
1614
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1615
583k
        : base(unexpect, std::move(e.error())),
1616
583k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
583k
    {
1618
583k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Line
Count
Source
1615
11.7k
        : base(unexpect, std::move(e.error())),
1616
11.7k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
11.7k
    {
1618
11.7k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Line
Count
Source
1615
23.5k
        : base(unexpect, std::move(e.error())),
1616
23.5k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
23.5k
    {
1618
23.5k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEENS0_10scan_errorEEC2ISG_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Line
Count
Source
1615
11.7k
        : base(unexpect, std::move(e.error())),
1616
11.7k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
11.7k
    {
1618
11.7k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEJNS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISN_TnPNS7_9enable_ifIXsr3stdE18is_constructible_vISN_OT_EEvE4typeELPv0ETnPNSQ_IXsr3stdE16is_convertible_vISS_SN_EEvE4typeELSW_0EEEONS0_10unexpectedISR_EE
Line
Count
Source
1615
11.7k
        : base(unexpect, std::move(e.error())),
1616
11.7k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
11.7k
    {
1618
11.7k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS0_10scan_errorEEC2ISF_TnPNS6_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Line
Count
Source
1615
11.7k
        : base(unexpect, std::move(e.error())),
1616
11.7k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
11.7k
    {
1618
11.7k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Line
Count
Source
1615
23.5k
        : base(unexpect, std::move(e.error())),
1616
23.5k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
23.5k
    {
1618
23.5k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Line
Count
Source
1615
47.1k
        : base(unexpect, std::move(e.error())),
1616
47.1k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
47.1k
    {
1618
47.1k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEENS0_10scan_errorEEC2ISG_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Line
Count
Source
1615
23.5k
        : base(unexpect, std::move(e.error())),
1616
23.5k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
23.5k
    {
1618
23.5k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEJNS7_12basic_stringIwNS7_11char_traitsIwEENS7_9allocatorIwEEEEEEENS0_10scan_errorEEC2ISN_TnPNS7_9enable_ifIXsr3stdE18is_constructible_vISN_OT_EEvE4typeELPv0ETnPNSQ_IXsr3stdE16is_convertible_vISS_SN_EEvE4typeELSW_0EEEONS0_10unexpectedISR_EE
Line
Count
Source
1615
23.5k
        : base(unexpect, std::move(e.error())),
1616
23.5k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
23.5k
    {
1618
23.5k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS8_PKS9_lLl1024EEESD_EENS0_10scan_errorEEC2ISF_TnPNS6_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Line
Count
Source
1615
23.5k
        : base(unexpect, std::move(e.error())),
1616
23.5k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
23.5k
    {
1618
23.5k
    }
_ZN3scn2v48expectedIlNS0_10scan_errorEEC2IS2_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS2_OT_EEvE4typeELPv0ETnPNS6_IXsr3stdE16is_convertible_vIS8_S2_EEvE4typeELSC_0EEEONS0_10unexpectedIS7_EE
Line
Count
Source
1615
106k
        : base(unexpect, std::move(e.error())),
1616
106k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
106k
    {
1618
106k
    }
_ZN3scn2v48expectedIPKcNS0_10scan_errorEEC2IS4_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS4_OT_EEvE4typeELPv0ETnPNS8_IXsr3stdE16is_convertible_vISA_S4_EEvE4typeELSE_0EEEONS0_10unexpectedIS9_EE
Line
Count
Source
1615
25.7k
        : base(unexpect, std::move(e.error())),
1616
25.7k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
25.7k
    {
1618
25.7k
    }
_ZN3scn2v48expectedIPKwNS0_10scan_errorEEC2IS4_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS4_OT_EEvE4typeELPv0ETnPNS8_IXsr3stdE16is_convertible_vISA_S4_EEvE4typeELSE_0EEEONS0_10unexpectedIS9_EE
Line
Count
Source
1615
52.4k
        : base(unexpect, std::move(e.error())),
1616
52.4k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
52.4k
    {
1618
52.4k
    }
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEC2IS6_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS6_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S6_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
12.6k
        : base(unexpect, std::move(e.error())),
1616
12.6k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
12.6k
    {
1618
12.6k
    }
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEC2IS6_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS6_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S6_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
26.2k
        : base(unexpect, std::move(e.error())),
1616
26.2k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
26.2k
    {
1618
26.2k
    }
_ZN3scn2v48expectedIvNS0_10scan_errorEEC2IS2_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS2_OT_EEvE4typeELPv0ETnPNS6_IXsr3stdE16is_convertible_vIS8_S2_EEvE4typeELSC_0EEEONS0_10unexpectedIS7_EE
Line
Count
Source
1615
130k
        : base(unexpect, std::move(e.error())),
1616
130k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
130k
    {
1618
130k
    }
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Line
Count
Source
1615
2.28k
        : base(unexpect, std::move(e.error())),
1616
2.28k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
2.28k
    {
1618
2.28k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISL_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSP_IXsr3stdE16is_convertible_vISR_SL_EEvE4typeELSV_0EEEONS0_10unexpectedISQ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
_ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1615
976
        : base(unexpect, std::move(e.error())),
1616
976
          ctor_base(detail::non_default_ctor_tag_t{})
1617
976
    {
1618
976
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2INSC_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSH_IXsr3stdE16is_convertible_vISJ_SC_EEvE4typeELSN_0EEEONS0_10unexpectedISI_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEC2ISE_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISE_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SE_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEEC2ISL_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEC2INS7_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S7_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
_ZN3scn2v48expectedIPKcNS0_4impl9eof_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Line
Count
Source
1615
3.60k
        : base(unexpect, std::move(e.error())),
1616
3.60k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
3.60k
    {
1618
3.60k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNS9_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
_ZN3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEEC2IS7_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S7_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
1.44k
        : base(unexpect, std::move(e.error())),
1616
1.44k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
1.44k
    {
1618
1.44k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEC2INS8_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S8_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEC2ISC_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SC_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISA_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SA_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEEC2ISH_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISH_OT_EEvE4typeELPv0ETnPNSK_IXsr3stdE16is_convertible_vISM_SH_EEvE4typeELSQ_0EEEONS0_10unexpectedISL_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKcNS0_4impl11parse_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKcNS0_4impl11parse_errorEEC2INS5_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S5_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEEC2ISD_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISD_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SD_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Line
Count
Source
1615
2.39k
        : base(unexpect, std::move(e.error())),
1616
2.39k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
2.39k
    {
1618
2.39k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISL_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSP_IXsr3stdE16is_convertible_vISR_SL_EEvE4typeELSV_0EEEONS0_10unexpectedISQ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
_ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1615
956
        : base(unexpect, std::move(e.error())),
1616
956
          ctor_base(detail::non_default_ctor_tag_t{})
1617
956
    {
1618
956
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2INSC_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSH_IXsr3stdE16is_convertible_vISJ_SC_EEvE4typeELSN_0EEEONS0_10unexpectedISI_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEC2ISE_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISE_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SE_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEEC2ISO_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISO_OT_EEvE4typeELPv0ETnPNSR_IXsr3stdE16is_convertible_vIST_SO_EEvE4typeELSX_0EEEONS0_10unexpectedISS_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEC2INS7_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S7_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEEC2ISI_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
_ZN3scn2v48expectedIPKwNS0_4impl9eof_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Line
Count
Source
1615
4.78k
        : base(unexpect, std::move(e.error())),
1616
4.78k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
4.78k
    {
1618
4.78k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNS9_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
_ZN3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEEC2IS7_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S7_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
1.91k
        : base(unexpect, std::move(e.error())),
1616
1.91k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
1.91k
    {
1618
1.91k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEC2INS8_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S8_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEC2ISC_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SC_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISA_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SA_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEEC2ISK_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISK_OT_EEvE4typeELPv0ETnPNSN_IXsr3stdE16is_convertible_vISP_SK_EEvE4typeELST_0EEEONS0_10unexpectedISO_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKwNS0_4impl11parse_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKwNS0_4impl11parse_errorEEC2INS5_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S5_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSM_IXsr3stdE16is_convertible_vISO_SI_EEvE4typeELSS_0EEEONS0_10unexpectedISN_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSM_IXsr3stdE16is_convertible_vISO_SI_EEvE4typeELSS_0EEEONS0_10unexpectedISN_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISL_TnPNSD_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEENS0_10scan_errorEEC2ISD_TnPNS7_9enable_ifIXsr3stdE18is_constructible_vISD_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SD_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEEC2ISB_TnPNS6_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISL_TnPNSD_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
1619
1620
    /// Construct an unexpected value directly in-place
1621
    template <typename... Args,
1622
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
1623
    explicit constexpr expected(unexpect_t, Args&&... args) noexcept(
1624
        std::is_nothrow_constructible_v<base, unexpect_t, Args&&...>)
1625
13.0k
        : base(unexpect, std::forward<Args>(args)...),
1626
13.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
13.0k
    {
1628
13.0k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
2.28k
        : base(unexpect, std::forward<Args>(args)...),
1626
2.28k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
2.28k
    {
1628
2.28k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
2.39k
        : base(unexpect, std::forward<Args>(args)...),
1626
2.39k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
2.39k
    {
1628
2.39k
    }
scn::v4::expected<char const*, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
3.60k
        : base(unexpect, std::forward<Args>(args)...),
1626
3.60k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
3.60k
    {
1628
3.60k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
4.78k
        : base(unexpect, std::forward<Args>(args)...),
1626
4.78k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
4.78k
    {
1628
4.78k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
1629
1630
    template <
1631
        typename U,
1632
        typename G,
1633
        std::enable_if_t<!(std::is_convertible_v<const U&, T> &&
1634
                           std::is_convertible_v<const G&, E>)>* = nullptr,
1635
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1636
    explicit constexpr expected(const expected<U, G>& other) noexcept(
1637
        std::is_nothrow_constructible_v<T, const U&> &&
1638
        std::is_nothrow_constructible_v<E, const G&>)
1639
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1640
    {
1641
        if (other.has_value()) {
1642
            this->construct(*other);
1643
        }
1644
        else {
1645
            this->construct_unexpected(other.error());
1646
        }
1647
    }
1648
    template <
1649
        typename U,
1650
        typename G,
1651
        std::enable_if_t<(std::is_convertible_v<const U&, T> &&
1652
                          std::is_convertible_v<const G&, E>)>* = nullptr,
1653
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1654
    constexpr expected(const expected<U, G>& other) noexcept(
1655
        std::is_nothrow_constructible_v<T, const U&> &&
1656
        std::is_nothrow_constructible_v<E, const G&>)
1657
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1658
    {
1659
        if (other.has_value()) {
1660
            this->construct(*other);
1661
        }
1662
        else {
1663
            this->construct_unexpected(other.error());
1664
        }
1665
    }
1666
1667
    template <typename U,
1668
              typename G,
1669
              std::enable_if_t<!(std::is_convertible_v<U&&, T> &&
1670
                                 std::is_convertible_v<G&&, E>)>* = nullptr,
1671
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1672
    explicit constexpr expected(expected<U, G>&& other) noexcept(
1673
        std::is_nothrow_constructible_v<T, U&&> &&
1674
        std::is_nothrow_constructible_v<E, G&&>)
1675
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1676
    {
1677
        if (other.has_value()) {
1678
            this->construct(std::move(*other));
1679
        }
1680
        else {
1681
            this->construct_unexpected(std::move(other.error()));
1682
        }
1683
    }
1684
    template <typename U,
1685
              typename G,
1686
              std::enable_if_t<(std::is_convertible_v<U&&, T> &&
1687
                                std::is_convertible_v<G&&, E>)>* = nullptr,
1688
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1689
    constexpr expected(expected<U, G>&& other) noexcept(
1690
        std::is_nothrow_constructible_v<T, U&&> &&
1691
        std::is_nothrow_constructible_v<E, G&&>)
1692
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1693
    {
1694
        if (other.has_value()) {
1695
            this->construct(std::move(*other));
1696
        }
1697
        else {
1698
            this->construct_unexpected(std::move(other.error()));
1699
        }
1700
    }
1701
1702
    template <typename U = value_type,
1703
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1704
    expected& operator=(U&& val) noexcept(
1705
        noexcept(assign_value(std::forward<U>(val))))
1706
    {
1707
        assign_value(std::forward<U>(val));
1708
        return *this;
1709
    }
1710
1711
    expected& operator=(const unexpected_type& unex) noexcept(
1712
        noexcept(assign_unexpected(unex)))
1713
    {
1714
        assign_unexpected(unex);
1715
        return *this;
1716
    }
1717
    expected& operator=(unexpected_type&& unex) noexcept(
1718
        noexcept(assign_unexpected(std::move(unex))))
1719
    {
1720
        assign_unexpected(std::move(unex));
1721
        return *this;
1722
    }
1723
1724
    /// Destroys the contained value, and then initializes the expected
1725
    /// value directly in-place.
1726
    template <typename... Args,
1727
              std::enable_if_t<std::is_constructible_v<T, Args...>>* = nullptr>
1728
    decltype(auto) emplace(Args&&... args) noexcept(
1729
        std::is_nothrow_constructible_v<T, Args...>)
1730
    {
1731
        emplace_impl(std::forward<Args>(args)...);
1732
        if constexpr (!std::is_void_v<T>) {
1733
            return this->get_value();
1734
        }
1735
    }
1736
1737
    using base::has_value;
1738
    constexpr explicit operator bool() const noexcept
1739
26.0M
    {
1740
26.0M
        return has_value();
1741
26.0M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
223k
    {
1740
223k
        return has_value();
1741
223k
    }
scn::v4::expected<long, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
3.64M
    {
1740
3.64M
        return has_value();
1741
3.64M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
111k
    {
1740
111k
        return has_value();
1741
111k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
111k
    {
1740
111k
        return has_value();
1741
111k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
135k
    {
1740
135k
        return has_value();
1741
135k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
135k
    {
1740
135k
        return has_value();
1741
135k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
1.57M
    {
1740
1.57M
        return has_value();
1741
1.57M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
787k
    {
1740
787k
        return has_value();
1741
787k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
787k
    {
1740
787k
        return has_value();
1741
787k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
787k
    {
1740
787k
        return has_value();
1741
787k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
787k
    {
1740
787k
        return has_value();
1741
787k
    }
scn::v4::expected<void, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
8.44M
    {
1740
8.44M
        return has_value();
1741
8.44M
    }
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::operator bool() const
scn::v4::expected<char const*, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
514k
    {
1740
514k
        return has_value();
1741
514k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
3.73M
    {
1740
3.73M
        return has_value();
1741
3.73M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
102k
    {
1740
102k
        return has_value();
1741
102k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
313k
    {
1740
313k
        return has_value();
1741
313k
    }
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
167k
    {
1740
167k
        return has_value();
1741
167k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
617k
    {
1740
617k
        return has_value();
1741
617k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
1.86M
    {
1740
1.86M
        return has_value();
1741
1.86M
    }
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
1.23M
    {
1740
1.23M
        return has_value();
1741
1.23M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
1742
1743
    /// Get the unexpected value, if one is contained in *this
1744
    constexpr error_type& error() & noexcept
1745
445k
    {
1746
445k
        SCN_EXPECT(!has_value());
1747
445k
        return this->get_unexpected().error();
1748
445k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
23.5k
    {
1746
23.5k
        SCN_EXPECT(!has_value());
1747
23.5k
        return this->get_unexpected().error();
1748
23.5k
    }
scn::v4::expected<long, scn::v4::scan_error>::error() &
Line
Count
Source
1745
106k
    {
1746
106k
        SCN_EXPECT(!has_value());
1747
106k
        return this->get_unexpected().error();
1748
106k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error>::error() &
Line
Count
Source
1745
11.7k
    {
1746
11.7k
        SCN_EXPECT(!has_value());
1747
11.7k
        return this->get_unexpected().error();
1748
11.7k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
47.1k
    {
1746
47.1k
        SCN_EXPECT(!has_value());
1747
47.1k
        return this->get_unexpected().error();
1748
47.1k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error>::error() &
Line
Count
Source
1745
23.5k
    {
1746
23.5k
        SCN_EXPECT(!has_value());
1747
23.5k
        return this->get_unexpected().error();
1748
23.5k
    }
scn::v4::expected<void, scn::v4::scan_error>::error() &
Line
Count
Source
1745
97.8k
    {
1746
97.8k
        SCN_EXPECT(!has_value());
1747
97.8k
        return this->get_unexpected().error();
1748
97.8k
    }
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::error() &
scn::v4::expected<char const*, scn::v4::scan_error>::error() &
Line
Count
Source
1745
29.3k
    {
1746
29.3k
        SCN_EXPECT(!has_value());
1747
29.3k
        return this->get_unexpected().error();
1748
29.3k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::error() &
Line
Count
Source
1745
57.2k
    {
1746
57.2k
        SCN_EXPECT(!has_value());
1747
57.2k
        return this->get_unexpected().error();
1748
57.2k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
976
    {
1746
976
        SCN_EXPECT(!has_value());
1747
976
        return this->get_unexpected().error();
1748
976
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::error() &
Line
Count
Source
1745
14.8k
    {
1746
14.8k
        SCN_EXPECT(!has_value());
1747
14.8k
        return this->get_unexpected().error();
1748
14.8k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
1.44k
    {
1746
1.44k
        SCN_EXPECT(!has_value());
1747
1.44k
        return this->get_unexpected().error();
1748
1.44k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
956
    {
1746
956
        SCN_EXPECT(!has_value());
1747
956
        return this->get_unexpected().error();
1748
956
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::error() &
Line
Count
Source
1745
28.6k
    {
1746
28.6k
        SCN_EXPECT(!has_value());
1747
28.6k
        return this->get_unexpected().error();
1748
28.6k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
1.91k
    {
1746
1.91k
        SCN_EXPECT(!has_value());
1747
1.91k
        return this->get_unexpected().error();
1748
1.91k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
1749
    constexpr const error_type& error() const& noexcept
1750
0
    {
1751
0
        SCN_EXPECT(!has_value());
1752
0
        return this->get_unexpected().error();
1753
0
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
1754
    constexpr error_type&& error() && noexcept
1755
13.0k
    {
1756
13.0k
        SCN_EXPECT(!has_value());
1757
13.0k
        return std::move(this->get_unexpected().error());
1758
13.0k
    }
Unexecuted instantiation: scn::v4::expected<void, scn::v4::scan_error>::error() &&
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
2.28k
    {
1756
2.28k
        SCN_EXPECT(!has_value());
1757
2.28k
        return std::move(this->get_unexpected().error());
1758
2.28k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
2.39k
    {
1756
2.39k
        SCN_EXPECT(!has_value());
1757
2.39k
        return std::move(this->get_unexpected().error());
1758
2.39k
    }
scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
3.60k
    {
1756
3.60k
        SCN_EXPECT(!has_value());
1757
3.60k
        return std::move(this->get_unexpected().error());
1758
3.60k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() &&
scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
4.78k
    {
1756
4.78k
        SCN_EXPECT(!has_value());
1757
4.78k
        return std::move(this->get_unexpected().error());
1758
4.78k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
1759
    constexpr const error_type&& error() const&& noexcept
1760
    {
1761
        SCN_EXPECT(!has_value());
1762
        return std::move(this->get_unexpected().error());
1763
    }
1764
1765
    /// Get the expected value, if one is contained in *this
1766
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1767
    constexpr U& value() & noexcept
1768
25.1M
    {
1769
25.1M
        SCN_EXPECT(has_value());
1770
25.1M
        return this->get_value();
1771
25.1M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1768
199k
    {
1769
199k
        SCN_EXPECT(has_value());
1770
199k
        return this->get_value();
1771
199k
    }
_ZNR3scn2v48expectedIlNS0_10scan_errorEE5valueIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
Line
Count
Source
1768
3.50M
    {
1769
3.50M
        SCN_EXPECT(has_value());
1770
3.50M
        return this->get_value();
1771
3.50M
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Line
Count
Source
1768
310k
    {
1769
310k
        SCN_EXPECT(has_value());
1770
310k
        return this->get_value();
1771
310k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEENS0_10scan_errorEE5valueISF_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Line
Count
Source
1768
310k
    {
1769
310k
        SCN_EXPECT(has_value());
1770
310k
        return this->get_value();
1771
310k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS0_10scan_errorEE5valueISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1768
123k
    {
1769
123k
        SCN_EXPECT(has_value());
1770
123k
        return this->get_value();
1771
123k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEJNS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISM_TnPNS7_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSR_v
Line
Count
Source
1768
381k
    {
1769
381k
        SCN_EXPECT(has_value());
1770
381k
        return this->get_value();
1771
381k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1768
1.52M
    {
1769
1.52M
        SCN_EXPECT(has_value());
1770
1.52M
        return this->get_value();
1771
1.52M
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Line
Count
Source
1768
2.31M
    {
1769
2.31M
        SCN_EXPECT(has_value());
1770
2.31M
        return this->get_value();
1771
2.31M
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEENS0_10scan_errorEE5valueISF_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Line
Count
Source
1768
2.31M
    {
1769
2.31M
        SCN_EXPECT(has_value());
1770
2.31M
        return this->get_value();
1771
2.31M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS8_PKS9_lLl1024EEESD_EENS0_10scan_errorEE5valueISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1768
763k
    {
1769
763k
        SCN_EXPECT(has_value());
1770
763k
        return this->get_value();
1771
763k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEJNS7_12basic_stringIwNS7_11char_traitsIwEENS7_9allocatorIwEEEEEEENS0_10scan_errorEE5valueISM_TnPNS7_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSR_v
Line
Count
Source
1768
2.31M
    {
1769
2.31M
        SCN_EXPECT(has_value());
1770
2.31M
        return this->get_value();
1771
2.31M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedIwNS0_10scan_errorEE5valueIwTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Line
Count
Source
1768
124k
    {
1769
124k
        SCN_EXPECT(has_value());
1770
124k
        return this->get_value();
1771
124k
    }
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Line
Count
Source
1768
770k
    {
1769
770k
        SCN_EXPECT(has_value());
1770
770k
        return this->get_value();
1771
770k
    }
_ZNR3scn2v48expectedIPKcNS0_10scan_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1768
485k
    {
1769
485k
        SCN_EXPECT(has_value());
1770
485k
        return this->get_value();
1771
485k
    }
_ZNR3scn2v48expectedIPKwNS0_10scan_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1768
3.67M
    {
1769
3.67M
        SCN_EXPECT(has_value());
1770
3.67M
        return this->get_value();
1771
3.67M
    }
_ZNR3scn2v48expectedIPKcNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1768
203k
    {
1769
203k
        SCN_EXPECT(has_value());
1770
203k
        return this->get_value();
1771
203k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
_ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1768
101k
    {
1769
101k
        SCN_EXPECT(has_value());
1770
101k
        return this->get_value();
1771
101k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEE5valueISK_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
298k
    {
1769
298k
        SCN_EXPECT(has_value());
1770
298k
        return this->get_value();
1771
298k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
_ZNR3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEE5valueIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
166k
    {
1769
166k
        SCN_EXPECT(has_value());
1770
166k
        return this->get_value();
1771
166k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS0_10scan_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEE5valueISG_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSL_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS0_10scan_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEE5valueISC_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS0_10scan_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
_ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1768
616k
    {
1769
616k
        SCN_EXPECT(has_value());
1770
616k
        return this->get_value();
1771
616k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEE5valueISN_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSS_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEE5valueISH_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
1.83M
    {
1769
1.83M
        SCN_EXPECT(has_value());
1770
1.83M
        return this->get_value();
1771
1.83M
    }
_ZNR3scn2v48expectedIPKwNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1768
1.54M
    {
1769
1.54M
        SCN_EXPECT(has_value());
1770
1.54M
        return this->get_value();
1771
1.54M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
_ZNR3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEE5valueIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
1.23M
    {
1769
1.23M
        SCN_EXPECT(has_value());
1770
1.23M
        return this->get_value();
1771
1.23M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS0_10scan_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEE5valueISJ_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSO_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS0_10scan_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS0_10scan_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISK_TnPNSD_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEE5valueISA_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEENS0_10scan_errorEE5valueISC_TnPNS7_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISK_TnPNSD_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
1772
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1773
    constexpr const U& value() const& noexcept
1774
0
    {
1775
0
        SCN_EXPECT(has_value());
1776
0
        return this->get_value();
1777
0
    }
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
1778
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1779
    constexpr U&& value() && noexcept
1780
    {
1781
        SCN_EXPECT(has_value());
1782
        return std::move(this->get_value());
1783
    }
1784
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1785
    constexpr const U&& value() const&& noexcept
1786
    {
1787
        SCN_EXPECT(has_value());
1788
        return std::move(this->get_value());
1789
    }
1790
1791
    /// Get the expected value, if one is contained in *this
1792
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1793
    constexpr U& operator*() & noexcept
1794
7.16M
    {
1795
7.16M
        return value();
1796
7.16M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1794
199k
    {
1795
199k
        return value();
1796
199k
    }
_ZNR3scn2v48expectedIlNS0_10scan_errorEEdeIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
Line
Count
Source
1794
3.50M
    {
1795
3.50M
        return value();
1796
3.50M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS0_10scan_errorEEdeISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1794
123k
    {
1795
123k
        return value();
1796
123k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1794
1.52M
    {
1795
1.52M
        return value();
1796
1.52M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS8_PKS9_lLl1024EEESD_EENS0_10scan_errorEEdeISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1794
763k
    {
1795
763k
        return value();
1796
763k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1794
50.3k
    {
1795
50.3k
        return value();
1796
50.3k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
_ZNR3scn2v48expectedIPKcNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1794
82.0k
    {
1795
82.0k
        return value();
1796
82.0k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1794
305k
    {
1795
305k
        return value();
1796
305k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
_ZNR3scn2v48expectedIPKwNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1794
611k
    {
1795
611k
        return value();
1796
611k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEEdeISA_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
1797
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1798
    constexpr const U& operator*() const& noexcept
1799
0
    {
1800
0
        return value();
1801
0
    }
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
1802
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1803
    constexpr U&& operator*() && noexcept
1804
10.0M
    {
1805
10.0M
        return std::move(value());
1806
10.0M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedIwNS0_10scan_errorEEdeIwTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS7_v
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Line
Count
Source
1804
124k
    {
1805
124k
        return std::move(value());
1806
124k
    }
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Line
Count
Source
1804
770k
    {
1805
770k
        return std::move(value());
1806
770k
    }
_ZNO3scn2v48expectedIPKcNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS9_v
Line
Count
Source
1804
402k
    {
1805
402k
        return std::move(value());
1806
402k
    }
_ZNO3scn2v48expectedIPKwNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS9_v
Line
Count
Source
1804
3.06M
    {
1805
3.06M
        return std::move(value());
1806
3.06M
    }
_ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Line
Count
Source
1804
203k
    {
1805
203k
        return std::move(value());
1806
203k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
_ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1804
101k
    {
1805
101k
        return std::move(value());
1806
101k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEEdeISK_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSP_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
248k
    {
1805
248k
        return std::move(value());
1806
248k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
_ZNO3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEEdeIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
166k
    {
1805
166k
        return std::move(value());
1806
166k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS0_10scan_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEEdeISG_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSL_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS0_10scan_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEEdeISC_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedIlNS0_10scan_errorEEdeIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS7_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS0_10scan_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
_ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1804
616k
    {
1805
616k
        return std::move(value());
1806
616k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEEdeISN_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSS_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEEdeISH_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
1.53M
    {
1805
1.53M
        return std::move(value());
1806
1.53M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
_ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Line
Count
Source
1804
1.54M
    {
1805
1.54M
        return std::move(value());
1806
1.54M
    }
_ZNO3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEEdeIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
1.23M
    {
1805
1.23M
        return std::move(value());
1806
1.23M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS0_10scan_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEEdeISJ_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSO_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS0_10scan_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS0_10scan_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
1807
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1808
    constexpr const U&& operator*() const&& noexcept
1809
    {
1810
        return std::move(value());
1811
    }
1812
1813
    constexpr value_type* operator->() noexcept
1814
7.94M
    {
1815
7.94M
        return &value();
1816
7.94M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
310k
    {
1815
310k
        return &value();
1816
310k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
310k
    {
1815
310k
        return &value();
1816
310k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
381k
    {
1815
381k
        return &value();
1816
381k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
2.31M
    {
1815
2.31M
        return &value();
1816
2.31M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
2.31M
    {
1815
2.31M
        return &value();
1816
2.31M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
2.31M
    {
1815
2.31M
        return &value();
1816
2.31M
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
1817
    constexpr const value_type* operator->() const noexcept
1818
    {
1819
        return &value();
1820
    }
1821
1822
    /// Returns the expected value if *this contains one, otherwise
1823
    /// returns default_value
1824
    template <typename U,
1825
              typename = std::enable_if_t<std::is_copy_constructible_v<T> &&
1826
                                          std::is_convertible_v<U, T>>>
1827
    constexpr T value_or(U&& default_value) const& noexcept(
1828
        std::is_nothrow_copy_constructible_v<T> &&
1829
        std::is_nothrow_constructible_v<T, U&&>)
1830
    {
1831
        if (has_value()) {
1832
            return value();
1833
        }
1834
        return std::forward<U>(default_value);
1835
    }
1836
    template <typename U,
1837
              typename = std::enable_if_t<std::is_move_constructible_v<T> &&
1838
                                          std::is_convertible_v<U, T>>>
1839
    constexpr T value_or(U&& default_value) && noexcept(
1840
        std::is_nothrow_move_constructible_v<T> &&
1841
        std::is_nothrow_constructible_v<T, U&&>)
1842
    {
1843
        if (has_value()) {
1844
            return std::move(value());
1845
        }
1846
        return std::forward<U>(default_value);
1847
    }
1848
1849
    template <typename G,
1850
              typename = std::enable_if_t<std::is_copy_constructible_v<E> &&
1851
                                          std::is_convertible_v<G, E>>>
1852
    constexpr E error_or(G&& default_error) const& noexcept(
1853
        std::is_nothrow_copy_constructible_v<E> &&
1854
        std::is_nothrow_constructible_v<E, G&&>)
1855
    {
1856
        if (!has_value()) {
1857
            return error();
1858
        }
1859
        return std::forward<G>(default_error);
1860
    }
1861
    template <typename G,
1862
              typename = std::enable_if_t<std::is_move_constructible_v<E> &&
1863
                                          std::is_convertible_v<G, E>>>
1864
    constexpr E error_or(G&& default_error) && noexcept(
1865
        std::is_nothrow_move_constructible_v<E> &&
1866
        std::is_nothrow_constructible_v<E, G&&>)
1867
    {
1868
        if (!has_value()) {
1869
            return std::move(error());
1870
        }
1871
        return std::forward<G>(default_error);
1872
    }
1873
1874
    template <typename F>
1875
    constexpr auto and_then(F&& f) & noexcept(noexcept(
1876
        detail::and_then_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1877
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1878
    {
1879
        return detail::and_then_impl(*this, std::forward<F>(f));
1880
    }
1881
    template <typename F>
1882
    constexpr auto and_then(F&& f) const& noexcept(
1883
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&),
1884
                                       std::forward<F>(f))))
1885
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1886
    {
1887
        return detail::and_then_impl(*this, std::forward<F>(f));
1888
    }
1889
    template <typename F>
1890
    constexpr auto and_then(F&& f) && noexcept(noexcept(
1891
        detail::and_then_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1892
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1893
    {
1894
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1895
    }
1896
    template <typename F>
1897
    constexpr auto and_then(F&& f) const&& noexcept(
1898
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&&),
1899
                                       std::forward<F>(f))))
1900
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1901
    {
1902
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1903
    }
1904
1905
    template <typename F>
1906
    constexpr auto or_else(F&& f) & noexcept(noexcept(
1907
        detail::or_else_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1908
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1909
    {
1910
        return detail::or_else_impl(*this, std::forward<F>(f));
1911
    }
1912
    template <typename F>
1913
    constexpr auto or_else(F&& f) const& noexcept(noexcept(
1914
        detail::or_else_impl(SCN_DECLVAL(const expected&), std::forward<F>(f))))
1915
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1916
    {
1917
        return detail::or_else_impl(*this, std::forward<F>(f));
1918
    }
1919
    template <typename F>
1920
    constexpr auto or_else(F&& f) && noexcept(noexcept(
1921
        detail::or_else_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1922
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1923
    {
1924
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1925
    }
1926
    template <typename F>
1927
    constexpr auto or_else(F&& f) const&& noexcept(
1928
        noexcept(detail::or_else_impl(SCN_DECLVAL(const expected&&),
1929
                                      std::forward<F>(f))))
1930
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1931
    {
1932
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1933
    }
1934
1935
    template <typename F>
1936
    constexpr auto transform(
1937
        F&& f) & -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1938
    {
1939
        return detail::transform_impl(*this, std::forward<F>(f));
1940
    }
1941
    template <typename F>
1942
    constexpr auto transform(F&& f)
1943
        const& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1944
    {
1945
        return detail::transform_impl(*this, std::forward<F>(f));
1946
    }
1947
    template <typename F>
1948
    constexpr auto transform(
1949
        F&& f) && -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1950
    {
1951
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1952
    }
1953
    template <typename F>
1954
    constexpr auto transform(F&& f)
1955
        const&& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1956
    {
1957
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1958
    }
1959
1960
    template <typename F>
1961
    constexpr auto transform_error(
1962
        F&& f) & -> decltype(detail::transform_error_impl(*this,
1963
                                                          std::forward<F>(f)))
1964
0
    {
1965
0
        return detail::transform_error_impl(*this, std::forward<F>(f));
1966
0
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES3_EUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
1967
    template <typename F>
1968
    constexpr auto transform_error(F&& f)
1969
        const& -> decltype(detail::transform_error_impl(*this,
1970
                                                        std::forward<F>(f)))
1971
    {
1972
        return detail::transform_error_impl(*this, std::forward<F>(f));
1973
    }
1974
    template <typename F>
1975
    constexpr auto transform_error(
1976
        F&& f) && -> decltype(detail::transform_error_impl(*this,
1977
                                                           std::forward<F>(f)))
1978
2.65M
    {
1979
2.65M
        return detail::transform_error_impl(std::move(*this),
1980
2.65M
                                            std::forward<F>(f));
1981
2.65M
    }
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1978
127k
    {
1979
127k
        return detail::transform_error_impl(std::move(*this),
1980
127k
                                            std::forward<F>(f));
1981
127k
    }
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1978
772k
    {
1979
772k
        return detail::transform_error_impl(std::move(*this),
1980
772k
                                            std::forward<F>(f));
1981
772k
    }
_ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1978
207k
    {
1979
207k
        return detail::transform_error_impl(std::move(*this),
1980
207k
                                            std::forward<F>(f));
1981
207k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESL_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSR_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESL_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSR_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
_ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1978
1.54M
    {
1979
1.54M
        return detail::transform_error_impl(std::move(*this),
1980
1.54M
                                            std::forward<F>(f));
1981
1.54M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
1982
    template <typename F>
1983
    constexpr auto transform_error(F&& f)
1984
        const&& -> decltype(detail::transform_error_impl(*this,
1985
                                                         std::forward<F>(f)))
1986
    {
1987
        return detail::transform_error_impl(std::move(*this),
1988
                                            std::forward<F>(f));
1989
    }
1990
1991
private:
1992
    template <typename... Args>
1993
    void emplace_impl(Args&&... args) noexcept(
1994
        std::is_nothrow_constructible_v<T, Args&&...>)
1995
    {
1996
        if (this->has_value()) {
1997
            this->destroy_value();
1998
            this->construct(std::forward<Args>(args)...);
1999
        }
2000
        else {
2001
#if SCN_HAS_EXCEPTIONS
2002
            if constexpr (std::is_nothrow_constructible_v<T, Args&&...>) {
2003
                auto tmp = std::move(error());
2004
                this->destroy_unexpected();
2005
2006
                try {
2007
                    this->construct(std::forward<Args>(args)...);
2008
                }
2009
                catch (...) {
2010
                    this->construct_unexpected(std::move(tmp));
2011
                    throw;
2012
                }
2013
            }
2014
            else {
2015
                this->construct(std::forward<Args>(args)...);
2016
            }
2017
#else
2018
            this->destroy_unexpected();
2019
            this->construct(std::forward<Args>(args)...);
2020
#endif
2021
        }
2022
    }
2023
2024
    template <typename Value>
2025
    void assign_value(Value&& val) noexcept(
2026
        std::is_nothrow_constructible_v<detail::remove_cvref_t<Value>,
2027
                                        Value&&> &&
2028
        std::is_nothrow_assignable_v<T, Value&&>)
2029
    {
2030
        if (has_value()) {
2031
            this->get_value() = std::forward<Value>(val);
2032
            return;
2033
        }
2034
2035
#if SCN_HAS_EXCEPTIONS
2036
        if constexpr (std::is_nothrow_constructible_v<T, Value&&>) {
2037
            this->destroy_unexpected();
2038
            this->construct(std::forward<Value>(val));
2039
        }
2040
        else {
2041
            auto tmp = std::move(this->get_unexpected());
2042
            this->destroy_unexpected();
2043
2044
            try {
2045
                this->construct(std::forward<Value>(val));
2046
            }
2047
            catch (...) {
2048
                this->construct_unexpected(std::move(tmp));
2049
            }
2050
        }
2051
#else
2052
        this->destroy_unexpected();
2053
        this->construct(std::forward<Value>(val));
2054
#endif
2055
    }
2056
2057
    template <typename Unexpected>
2058
    void assign_unexpected(Unexpected&& unex) noexcept(
2059
        std::is_nothrow_constructible_v<E, Unexpected&&> &&
2060
        std::is_nothrow_assignable_v<E, Unexpected&&>)
2061
    {
2062
        if (!has_value()) {
2063
            this->get_unexpected() = std::forward<Unexpected>(unex);
2064
            return;
2065
        }
2066
2067
        this->destroy_value();
2068
        this->construct_unexpected(std::forward<Unexpected>(unex));
2069
    }
2070
};
2071
2072
/////////////////////////////////////////////////////////////////
2073
// <ranges> implementation
2074
/////////////////////////////////////////////////////////////////
2075
2076
/**
2077
 * Contains a very minimal `<ranges>` implementation.
2078
 *
2079
 * This is a heavily stripped-down and adapted version of NanoRange:
2080
 * https://github.com/tcbrindle/NanoRange.
2081
 *
2082
 * NanoRange is provided under the Boost license.
2083
 * Copyright (c) 2018 Tristan Brindle (tcbrindle at gmail dot com)
2084
 */
2085
namespace ranges {
2086
2087
namespace detail {
2088
using namespace scn::detail;
2089
2090
template <typename T>
2091
constexpr auto decay_copy(T&& t) noexcept(
2092
    noexcept(static_cast<std::decay_t<T>>(SCN_FWD(t)))) -> std::decay_t<T>
2093
97.5M
{
2094
97.5M
    return SCN_FWD(t);
2095
97.5M
}
_ZN3scn2v46ranges6detail10decay_copyIPKcEEu7__decayIT_EOS6_
Line
Count
Source
2093
2.10M
{
2094
2.10M
    return SCN_FWD(t);
2095
2.10M
}
_ZN3scn2v46ranges6detail10decay_copyImEEu7__decayIT_EOS4_
Line
Count
Source
2093
2.54M
{
2094
2.54M
    return SCN_FWD(t);
2095
2.54M
}
_ZN3scn2v46ranges6detail10decay_copyINSt3__116__deque_iteratorIcPKcRS6_PKS7_lLl4096EEEEEu7__decayIT_EOSC_
Line
Count
Source
2093
5.14M
{
2094
5.14M
    return SCN_FWD(t);
2095
5.14M
}
_ZN3scn2v46ranges6detail10decay_copyIPKwEEu7__decayIT_EOS6_
Line
Count
Source
2093
12.1M
{
2094
12.1M
    return SCN_FWD(t);
2095
12.1M
}
_ZN3scn2v46ranges6detail10decay_copyINSt3__116__deque_iteratorIwPKwRS6_PKS7_lLl1024EEEEEu7__decayIT_EOSC_
Line
Count
Source
2093
75.5M
{
2094
75.5M
    return SCN_FWD(t);
2095
75.5M
}
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EEEEu7__decayIT_EOSA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEEu7__decayIT_EOS8_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EEEEu7__decayIT_EOSA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEEu7__decayIT_EOS8_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS1_18default_sentinel_tEEEu7__decayIT_EOS5_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINSt3__111__wrap_iterIPcEEEEu7__decayIT_EOS8_
2096
2097
template <bool>
2098
struct conditional {
2099
    template <typename T, typename>
2100
    using type = T;
2101
};
2102
2103
template <>
2104
struct conditional<false> {
2105
    template <typename, typename U>
2106
    using type = U;
2107
};
2108
2109
template <bool B, typename T, typename U>
2110
using conditional_t = typename conditional<B>::template type<T, U>;
2111
2112
template <template <class...> class AliasT, typename... Args>
2113
auto exists_helper(long) -> std::false_type;
2114
2115
template <template <class...> class AliasT,
2116
          typename... Args,
2117
          typename = AliasT<Args...>>
2118
auto exists_helper(int) -> std::true_type;
2119
2120
template <template <class...> class AliasT, typename... Args>
2121
inline constexpr bool exists_v =
2122
    decltype(exists_helper<AliasT, Args...>(0))::value;
2123
2124
template <typename, typename...>
2125
auto test_requires_fn(long) -> std::false_type;
2126
2127
template <typename R,
2128
          typename... Args,
2129
          typename = decltype(&R::template requires_<Args...>)>
2130
auto test_requires_fn(int) -> std::true_type;
2131
2132
template <typename R, typename... Args>
2133
inline constexpr bool requires_ =
2134
    decltype(test_requires_fn<R, Args...>(0))::value;
2135
2136
template <bool Expr>
2137
using requires_expr = std::enable_if_t<Expr, int>;
2138
}  // namespace detail
2139
2140
template <typename>
2141
inline constexpr bool enable_borrowed_range = false;
2142
2143
namespace detail {
2144
template <typename T>
2145
inline constexpr bool boolean_testable_impl = std::is_convertible_v<T, bool>;
2146
2147
struct boolean_testable_concept {
2148
    template <typename T>
2149
    auto requires_(T&& t)
2150
        -> requires_expr<boolean_testable_impl<decltype(!std::forward<T>(t))>>;
2151
};
2152
2153
template <typename T>
2154
inline constexpr bool boolean_testable =
2155
    boolean_testable_impl<T> && detail::requires_<boolean_testable_concept, T>;
2156
}  // namespace detail
2157
2158
namespace detail {
2159
struct weakly_equality_comparable_with_concept {
2160
    template <typename T, typename U>
2161
    auto requires_(const std::remove_reference_t<T>& t,
2162
                   const std::remove_reference_t<U>& u)
2163
        -> decltype(requires_expr<boolean_testable<decltype(t == u)>>{},
2164
                    requires_expr<boolean_testable<decltype(t != u)>>{},
2165
                    requires_expr<boolean_testable<decltype(u == t)>>{},
2166
                    requires_expr<boolean_testable<decltype(u != t)>>{});
2167
};
2168
2169
template <typename T, typename U>
2170
inline constexpr bool weakly_equality_comparable_with =
2171
    requires_<weakly_equality_comparable_with_concept, T, U>;
2172
}  // namespace detail
2173
2174
template <typename T>
2175
inline constexpr bool equality_comparable =
2176
    detail::weakly_equality_comparable_with<T, T>;
2177
2178
namespace detail {
2179
struct equality_comparable_with_concept {
2180
    template <typename, typename>
2181
    static auto test(long) -> std::false_type;
2182
2183
    template <typename T, typename U>
2184
    static auto test(int)
2185
        -> std::enable_if_t<equality_comparable<T> && equality_comparable<U> &&
2186
#if 0
2187
            common_reference_with<const std::remove_reference_t<T>&,
2188
                                  const std::remove_reference_t<U>&> &&
2189
            equality_comparable<
2190
                common_reference_t<const std::remove_reference_t<T>&,
2191
                                   const std::remove_reference_t<U>&>> &&
2192
#endif
2193
                                weakly_equality_comparable_with<T, U>,
2194
                            std::true_type>;
2195
};
2196
}  // namespace detail
2197
2198
template <typename T, typename U>
2199
inline constexpr bool equality_comparable_with =
2200
    decltype(detail::equality_comparable_with_concept::test<T, U>(0))::value;
2201
2202
namespace detail {
2203
struct partially_ordered_with_concept {
2204
    template <typename T, typename U>
2205
    auto requires_(const std::remove_reference_t<T>& t,
2206
                   const std::remove_reference_t<U>& u)
2207
        -> decltype(requires_expr<boolean_testable<decltype(t < u)>>{},
2208
                    requires_expr<boolean_testable<decltype(t > u)>>{},
2209
                    requires_expr<boolean_testable<decltype(t <= u)>>{},
2210
                    requires_expr<boolean_testable<decltype(t >= u)>>{},
2211
                    requires_expr<boolean_testable<decltype(u < t)>>{},
2212
                    requires_expr<boolean_testable<decltype(u > t)>>{},
2213
                    requires_expr<boolean_testable<decltype(u <= t)>>{},
2214
                    requires_expr<boolean_testable<decltype(u >= t)>>{});
2215
};
2216
2217
template <typename T, typename U>
2218
inline constexpr bool partially_ordered_with =
2219
    detail::requires_<detail::partially_ordered_with_concept, T, U>;
2220
}  // namespace detail
2221
2222
template <typename T>
2223
inline constexpr bool totally_ordered =
2224
    equality_comparable<T> && detail::partially_ordered_with<T, T>;
2225
2226
namespace detail {
2227
struct totally_ordered_with_concept {
2228
    template <typename, typename>
2229
    static auto test(long) -> std::false_type;
2230
2231
    template <typename T, typename U>
2232
    static auto test(int)
2233
        -> std::enable_if_t<totally_ordered<T> && totally_ordered<U> &&
2234
                                equality_comparable_with<T, U> &&
2235
#if 0
2236
                                totally_ordered<common_reference_t<
2237
                                    const std::remove_reference_t<T>&,
2238
                                    const std::remove_reference_t<U>&>> &&
2239
#endif
2240
                                partially_ordered_with<T, U>,
2241
                            std::true_type>;
2242
};
2243
}  // namespace detail
2244
2245
template <typename T, typename U>
2246
inline constexpr bool totally_ordered_with =
2247
    decltype(detail::totally_ordered_with_concept::test<T, U>(0))::value;
2248
2249
namespace detail {
2250
struct movable_concept {
2251
    template <typename T>
2252
    static auto test(long) -> std::false_type;
2253
2254
    template <typename T>
2255
    static auto test(int) -> std::enable_if_t<
2256
        std::is_object_v<T> && std::is_move_constructible_v<T> &&
2257
            std::is_move_assignable_v<T> && std::is_swappable_v<T>,
2258
        std::true_type>;
2259
};
2260
}  // namespace detail
2261
2262
template <typename T>
2263
inline constexpr bool movable =
2264
    decltype(detail::movable_concept::test<T>(0))::value;
2265
2266
namespace detail {
2267
struct copyable_concept {
2268
    template <typename>
2269
    static auto test(long) -> std::false_type;
2270
2271
    template <typename T>
2272
    static auto test(int)
2273
        -> std::enable_if_t<std::is_copy_constructible_v<T> && movable<T> &&
2274
                                std::is_copy_assignable_v<T>,
2275
                            std::true_type>;
2276
};
2277
}  // namespace detail
2278
2279
template <typename T>
2280
inline constexpr bool copyable =
2281
    decltype(detail::copyable_concept::test<T>(0))::value;
2282
2283
template <typename T>
2284
inline constexpr bool semiregular =
2285
    copyable<T> && std::is_default_constructible_v<T>;
2286
2287
template <typename T>
2288
inline constexpr bool regular = semiregular<T> && equality_comparable<T>;
2289
2290
template <typename>
2291
struct incrementable_traits;
2292
2293
namespace detail {
2294
struct empty {};
2295
2296
template <typename T>
2297
struct with_difference_type {
2298
    using difference_type = T;
2299
};
2300
2301
template <typename, typename = void>
2302
struct incrementable_traits_helper {};
2303
2304
// Workaround for GCC silliness: void* has no difference_type
2305
// FIXME: This is required to stop WeaklyIncrementable<void*> being a hard
2306
// error Can we formulate the concept differently to avoid the need for this
2307
// hack?
2308
template <>
2309
struct incrementable_traits_helper<void*> {};
2310
2311
template <typename T>
2312
struct incrementable_traits_helper<T*>
2313
    : detail::conditional_t<std::is_object_v<T>,
2314
                            with_difference_type<std::ptrdiff_t>,
2315
                            empty> {};
2316
2317
template <class I>
2318
struct incrementable_traits_helper<const I>
2319
    : incrementable_traits<std::decay_t<I>> {};
2320
2321
template <typename, typename = void>
2322
struct has_member_difference_type : std::false_type {};
2323
2324
template <typename T>
2325
struct has_member_difference_type<T, std::void_t<typename T::difference_type>>
2326
    : std::true_type {};
2327
2328
template <typename T>
2329
constexpr bool has_member_difference_type_v =
2330
    has_member_difference_type<T>::value;
2331
2332
template <typename T>
2333
struct incrementable_traits_helper<
2334
    T,
2335
    std::enable_if_t<has_member_difference_type_v<T>>> {
2336
    using difference_type = typename T::difference_type;
2337
};
2338
2339
template <typename T, typename = void>
2340
struct subtraction_result_type {
2341
    using type = void;
2342
};
2343
template <typename T>
2344
struct subtraction_result_type<
2345
    T,
2346
    std::void_t<decltype(std::declval<const T&>() -
2347
                         std::declval<const T&>())>> {
2348
    using type = decltype(std::declval<const T&>() - std::declval<const T&>());
2349
};
2350
2351
template <typename T>
2352
inline constexpr bool enable_incrtraits_subtractable =
2353
    !std::is_pointer_v<T> && !has_member_difference_type_v<T> &&
2354
    std::is_integral_v<typename subtraction_result_type<T>::type>;
2355
2356
template <typename T>
2357
struct incrementable_traits_helper<
2358
    T,
2359
    std::enable_if_t<enable_incrtraits_subtractable<T>>>
2360
    : with_difference_type<
2361
          std::make_signed_t<typename subtraction_result_type<T>::type>> {};
2362
}  // namespace detail
2363
2364
template <typename T>
2365
struct incrementable_traits : detail::incrementable_traits_helper<T> {};
2366
2367
template <typename T>
2368
using iter_difference_t = typename incrementable_traits<T>::difference_type;
2369
2370
template <typename>
2371
struct readable_traits;
2372
2373
namespace detail {
2374
template <typename T>
2375
struct with_value_type {
2376
    using value_type = T;
2377
};
2378
2379
template <typename, typename = void>
2380
struct readable_traits_helper {};
2381
2382
template <typename T>
2383
struct readable_traits_helper<T*>
2384
    : detail::conditional_t<std::is_object_v<T>,
2385
                            with_value_type<std::remove_cv_t<T>>,
2386
                            empty> {};
2387
2388
template <typename I>
2389
struct readable_traits_helper<I, std::enable_if_t<std::is_array_v<I>>>
2390
    : readable_traits<std::decay_t<I>> {};
2391
2392
template <typename I>
2393
struct readable_traits_helper<const I, std::enable_if_t<!std::is_array_v<I>>>
2394
    : readable_traits<std::decay_t<I>> {};
2395
2396
template <typename T, typename V = typename T::value_type>
2397
struct member_value_type
2398
    : detail::conditional_t<std::is_object_v<V>, with_value_type<V>, empty> {};
2399
2400
template <typename T, typename E = typename T::element_type>
2401
struct member_element_type
2402
    : detail::conditional_t<std::is_object_v<E>,
2403
                            with_value_type<std::remove_cv_t<E>>,
2404
                            empty> {};
2405
2406
template <typename T>
2407
using member_value_type_t = typename T::value_type;
2408
2409
template <typename T>
2410
constexpr bool has_member_value_type_v = exists_v<member_value_type_t, T>;
2411
2412
template <typename T>
2413
using member_element_type_t = typename T::element_type;
2414
2415
template <typename T>
2416
constexpr bool has_member_element_type_v = exists_v<member_element_type_t, T>;
2417
2418
template <typename T>
2419
struct readable_traits_helper<T,
2420
                              std::enable_if_t<has_member_value_type_v<T> &&
2421
                                               !has_member_element_type_v<T>>>
2422
    : member_value_type<T> {};
2423
2424
template <typename T>
2425
struct readable_traits_helper<T,
2426
                              std::enable_if_t<has_member_element_type_v<T> &&
2427
                                               !has_member_value_type_v<T>>>
2428
    : member_element_type<T> {};
2429
2430
// A type which has both value_type and element_type members must specialise
2431
// readable_traits to tell us which one to prefer -- see
2432
// https://github.com/ericniebler/stl2/issues/562
2433
template <typename T>
2434
struct readable_traits_helper<T,
2435
                              std::enable_if_t<has_member_element_type_v<T> &&
2436
                                               has_member_value_type_v<T>>> {};
2437
}  // namespace detail
2438
2439
template <typename T>
2440
struct readable_traits : detail::readable_traits_helper<T> {};
2441
2442
template <typename T>
2443
using iter_value_t = typename readable_traits<T>::value_type;
2444
2445
namespace detail {
2446
template <typename T>
2447
using with_reference = T&;
2448
2449
struct can_reference_concept {
2450
    template <typename T>
2451
    auto requires_() -> with_reference<T>;
2452
};
2453
2454
template <typename T>
2455
inline constexpr bool can_reference =
2456
    detail::requires_<can_reference_concept, T>;
2457
2458
struct dereferencable_concept {
2459
    template <typename T>
2460
    auto requires_(T& t)
2461
        -> decltype(requires_expr<can_reference<decltype(*t)>>{});
2462
};
2463
2464
template <typename T>
2465
inline constexpr bool dereferenceable = requires_<dereferencable_concept, T>;
2466
2467
// GCC and Clang allow dereferencing void* as an extension.
2468
// Let's kill that off now.
2469
2470
template <>
2471
inline constexpr bool dereferenceable<void*> = false;
2472
}  // namespace detail
2473
2474
using std::bidirectional_iterator_tag;
2475
using std::forward_iterator_tag;
2476
using std::input_iterator_tag;
2477
using std::output_iterator_tag;
2478
using std::random_access_iterator_tag;
2479
2480
#if SCN_STD >= SCN_STD_20 && defined(__cpp_lib_ranges) && \
2481
    __cpp_lib_ranges >= 201911L
2482
using std::contiguous_iterator_tag;
2483
#else
2484
struct contiguous_iterator_tag : random_access_iterator_tag {};
2485
#endif
2486
2487
template <typename T>
2488
struct iterator_category;
2489
2490
namespace detail {
2491
template <typename T, typename = void>
2492
struct iterator_category_ {};
2493
template <typename T>
2494
struct iterator_category_<T*>
2495
    : std::enable_if<std::is_object_v<T>, contiguous_iterator_tag> {};
2496
template <typename T>
2497
struct iterator_category_<const T> : iterator_category<T> {};
2498
template <typename T>
2499
struct iterator_category_<T, std::void_t<typename T::iterator_category>> {
2500
    using type = typename T::iterator_category;
2501
};
2502
}  // namespace detail
2503
2504
template <typename T>
2505
struct iterator_category : detail::iterator_category_<T> {};
2506
template <typename T>
2507
using iterator_category_t = typename iterator_category<T>::type;
2508
2509
namespace detail {
2510
2511
template <typename T, typename = void>
2512
struct legacy_iterator_category : iterator_category<T> {};
2513
2514
template <typename T>
2515
struct legacy_iterator_category<
2516
    T,
2517
    std::enable_if_t<
2518
        std::is_same_v<iterator_category_t<T>, contiguous_iterator_tag>>> {
2519
    using type = random_access_iterator_tag;
2520
};
2521
2522
template <typename T>
2523
using legacy_iterator_category_t = typename legacy_iterator_category<T>::type;
2524
2525
}  // namespace detail
2526
2527
template <typename T>
2528
using iter_reference_t =
2529
    std::enable_if_t<detail::dereferenceable<T>, decltype(*std::declval<T&>())>;
2530
2531
namespace detail {
2532
2533
struct readable_concept {
2534
    template <typename In>
2535
    auto requires_() -> decltype(std::declval<iter_value_t<In>>(),
2536
                                 std::declval<iter_reference_t<In>>());
2537
    // std::declval<iter_rvalue_reference_t<In>>());
2538
2539
    template <typename>
2540
    static auto test(long) -> std::false_type;
2541
2542
    template <typename In>
2543
    static auto test(int)
2544
        -> std::enable_if_t<detail::requires_<readable_concept, In>,
2545
#if 0
2546
            common_reference_with<iter_reference_t<In>&&, iter_value_t<In>&> &&
2547
            common_reference_with<iter_reference_t<In>&&,
2548
                                  iter_rvalue_reference_t<In>&&> &&
2549
            common_reference_with<iter_rvalue_reference_t<In>&&,
2550
                                  const iter_value_t<In>&>,
2551
#endif
2552
                            std::true_type>;
2553
};
2554
2555
}  // namespace detail
2556
2557
template <typename In>
2558
inline constexpr bool readable =
2559
    decltype(detail::readable_concept::test<In>(0))::value;
2560
2561
namespace detail {
2562
2563
struct writable_concept {
2564
    template <typename Out, typename T>
2565
    auto requires_(Out&& o, T&& t)
2566
        -> decltype(*o = std::forward<T>(t),
2567
                    *std::forward<Out>(o) = std::forward<T>(t),
2568
                    const_cast<const iter_reference_t<Out>&&>(*o) =
2569
                        std::forward<T>(t),
2570
                    const_cast<const iter_reference_t<Out>&&>(
2571
                        *std::forward<Out>(o)) = std::forward<T>(t));
2572
};
2573
2574
}  // namespace detail
2575
2576
template <typename Out, typename T>
2577
inline constexpr bool writable =
2578
    detail::requires_<detail::writable_concept, Out, T>;
2579
2580
namespace detail {
2581
2582
template <typename T>
2583
inline constexpr bool is_integer_like = std::is_integral_v<T>;
2584
2585
template <typename T>
2586
inline constexpr bool is_signed_integer_like =
2587
    std::is_integral_v<T> && std::is_signed_v<T>;
2588
2589
struct weakly_incrementable_concept {
2590
    template <typename I>
2591
    auto requires_(I i)
2592
        -> decltype(std::declval<iter_difference_t<I>>(),
2593
                    requires_expr<
2594
                        is_signed_integer_like<iter_difference_t<I>>>{},
2595
                    requires_expr<std::is_same_v<decltype(++i), I&>>{},
2596
                    i++);
2597
};
2598
2599
}  // namespace detail
2600
2601
template <typename I>
2602
inline constexpr bool weakly_incrementable =
2603
    std::is_default_constructible_v<I> && movable<I> &&
2604
    detail::requires_<detail::weakly_incrementable_concept, I>;
2605
2606
namespace detail {
2607
2608
struct incrementable_concept {
2609
    template <typename I>
2610
    auto requires_(I i)
2611
        -> decltype(requires_expr<std::is_same_v<decltype(i++), I>>{});
2612
};
2613
2614
}  // namespace detail
2615
2616
template <typename I>
2617
inline constexpr bool incrementable =
2618
    regular<I> && weakly_incrementable<I> &&
2619
    detail::requires_<detail::incrementable_concept, I>;
2620
2621
namespace detail {
2622
2623
struct input_or_output_iterator_concept {
2624
    template <typename I>
2625
    auto requires_(I i)
2626
        -> decltype(requires_expr<can_reference<decltype(*i)>>{});
2627
};
2628
2629
}  // namespace detail
2630
2631
template <typename I>
2632
inline constexpr bool input_or_output_iterator =
2633
    detail::requires_<detail::input_or_output_iterator_concept, I> &&
2634
    weakly_incrementable<I>;
2635
2636
template <typename S, typename I>
2637
inline constexpr bool sentinel_for =
2638
    semiregular<S> && input_or_output_iterator<I> &&
2639
    detail::weakly_equality_comparable_with<S, I>;
2640
2641
template <typename S, typename I>
2642
inline constexpr bool disable_sized_sentinel = false;
2643
2644
namespace detail {
2645
2646
struct sized_sentinel_for_concept {
2647
    template <typename S, typename I>
2648
    auto requires_(const S& s, const I& i)
2649
        -> decltype(requires_expr<std::is_same_v<decltype(s - i),
2650
                                                 iter_difference_t<I>>>{},
2651
                    requires_expr<std::is_same_v<decltype(i - s),
2652
                                                 iter_difference_t<I>>>{});
2653
};
2654
2655
}  // namespace detail
2656
2657
template <typename S, typename I>
2658
inline constexpr bool sized_sentinel_for =
2659
    sentinel_for<S, I> &&
2660
    !disable_sized_sentinel<std::remove_cv_t<S>, std::remove_cv_t<I>> &&
2661
    detail::requires_<detail::sized_sentinel_for_concept, S, I>;
2662
2663
// This is a hack, but I'm fed up with my tests breaking because GCC
2664
// has a silly extension
2665
template <typename S>
2666
inline constexpr bool sized_sentinel_for<S, void*> = false;
2667
2668
template <typename I>
2669
inline constexpr bool sized_sentinel_for<void*, I> = false;
2670
2671
template <>
2672
inline constexpr bool sized_sentinel_for<void*, void*> = false;
2673
2674
namespace detail {
2675
2676
// FIXME: Use ITER_CONCEPT, not iterator_category_t
2677
struct input_iterator_concept {
2678
    template <typename I>
2679
    auto requires_() -> iterator_category_t<I>;
2680
2681
    template <typename>
2682
    static auto test(long) -> std::false_type;
2683
2684
    template <typename I>
2685
    static auto test(int) -> std::enable_if_t<
2686
        input_or_output_iterator<I> && readable<I> &&
2687
            detail::requires_<input_iterator_concept, I> &&
2688
            std::is_base_of_v<input_iterator_tag, iterator_category_t<I>>,
2689
        std::true_type>;
2690
};
2691
2692
}  // namespace detail
2693
2694
template <typename I>
2695
inline constexpr bool input_iterator =
2696
    decltype(detail::input_iterator_concept::test<I>(0))::value;
2697
2698
namespace detail {
2699
2700
struct output_iterator_concept {
2701
    template <typename I, typename T>
2702
    auto requires_(I i, T&& t) -> decltype(*i++ = std::forward<T>(t));
2703
};
2704
2705
}  // namespace detail
2706
2707
template <typename I, typename T>
2708
inline constexpr bool output_iterator =
2709
    input_or_output_iterator<I> && writable<I, T> &&
2710
    detail::requires_<detail::output_iterator_concept, I, T>;
2711
2712
namespace detail {
2713
2714
struct forward_iterator_concept {
2715
    template <typename>
2716
    static auto test(long) -> std::false_type;
2717
2718
    template <typename I>
2719
    static auto test(int) -> std::enable_if_t<
2720
        input_iterator<I> &&
2721
            std::is_base_of_v<forward_iterator_tag, iterator_category_t<I>> &&
2722
            incrementable<I> && sentinel_for<I, I>,
2723
        std::true_type>;
2724
};
2725
2726
}  // namespace detail
2727
2728
template <typename I>
2729
inline constexpr bool forward_iterator =
2730
    decltype(detail::forward_iterator_concept::test<I>(0))::value;
2731
2732
namespace detail {
2733
2734
struct bidirectional_iterator_concept {
2735
    template <typename I>
2736
    auto requires_(I i)
2737
        -> decltype(requires_expr<std::is_same_v<decltype(--i), I&>>{},
2738
                    requires_expr<std::is_same_v<decltype(i--), I>>{});
2739
2740
    template <typename>
2741
    static auto test(long) -> std::false_type;
2742
2743
    template <typename I>
2744
    static auto test(int) -> std::enable_if_t<
2745
        forward_iterator<I> &&
2746
            std::is_base_of_v<bidirectional_iterator_tag,
2747
                              iterator_category_t<I>> &&
2748
            detail::requires_<bidirectional_iterator_concept, I>,
2749
        std::true_type>;
2750
};
2751
2752
}  // namespace detail
2753
2754
template <typename I>
2755
inline constexpr bool bidirectional_iterator =
2756
    decltype(detail::bidirectional_iterator_concept::test<I>(0))::value;
2757
2758
namespace detail {
2759
2760
struct random_access_iterator_concept {
2761
    template <typename>
2762
    static auto test(long) -> std::false_type;
2763
2764
    template <typename I>
2765
    static auto test(int) -> std::enable_if_t<
2766
        bidirectional_iterator<I> &&
2767
            std::is_base_of_v<random_access_iterator_tag,
2768
                              iterator_category_t<I>> &&
2769
            totally_ordered<I> && sized_sentinel_for<I, I> &&
2770
            detail::requires_<random_access_iterator_concept, I>,
2771
        std::true_type>;
2772
2773
    template <typename I>
2774
    auto requires_(I i, const I j, const iter_difference_t<I> n)
2775
        -> decltype(requires_expr<std::is_same_v<decltype(i += n), I&>>{},
2776
                    requires_expr<std::is_same_v<decltype(j + n), I>>{},
2777
#ifndef _MSC_VER
2778
                    requires_expr<std::is_same_v<decltype(n + j),
2779
                                                 I>>{},  // FIXME: MSVC doesn't
2780
                                                         // like this when I =
2781
                                                         // int*
2782
#endif
2783
                    requires_expr<std::is_same_v<decltype(i -= n), I&>>{},
2784
                    requires_expr<std::is_same_v<decltype(j - n), I>>{},
2785
                    requires_expr<
2786
                        std::is_same_v<decltype(j[n]), iter_reference_t<I>>>{});
2787
};
2788
2789
}  // namespace detail
2790
2791
template <typename I>
2792
inline constexpr bool random_access_iterator =
2793
    decltype(detail::random_access_iterator_concept::test<I>(0))::value;
2794
2795
namespace detail {
2796
2797
struct contiguous_iterator_concept {
2798
    template <typename>
2799
    static auto test(long) -> std::false_type;
2800
2801
    template <typename I>
2802
    static auto test(int) -> std::enable_if_t<
2803
        random_access_iterator<I> &&
2804
            /*std::is_base_of_v<contiguous_iterator_tag,
2805
                              iterator_category_t<I>> &&*/
2806
            detail::can_make_address_from_iterator<I> &&
2807
            std::is_lvalue_reference_v<iter_reference_t<I>> &&
2808
            std::is_same_v<iter_value_t<I>,
2809
                           remove_cvref_t<iter_reference_t<I>>>,
2810
        std::true_type>;
2811
};
2812
2813
}  // namespace detail
2814
2815
template <typename I>
2816
inline constexpr bool contiguous_iterator =
2817
    decltype(detail::contiguous_iterator_concept::test<I>(0))::value;
2818
2819
namespace detail::begin_ {
2820
2821
template <typename T>
2822
void begin(T&) = delete;
2823
template <typename T>
2824
void begin(const T&) = delete;
2825
2826
struct fn {
2827
private:
2828
    template <typename T,
2829
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2830
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2831
                  nullptr>
2832
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2833
2834
    template <typename T,
2835
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2836
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2837
        -> decltype(t + 0)
2838
    {
2839
        static_assert(ranges::input_or_output_iterator<decltype(t + 0)>);
2840
        return t + 0;
2841
    }
2842
2843
    template <typename T>
2844
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2845
        noexcept(decay_copy(SCN_FWD(t).begin())))
2846
        -> std::enable_if_t<
2847
            input_or_output_iterator<decltype(decay_copy(SCN_FWD(t).begin()))>,
2848
            decltype(decay_copy(SCN_FWD(t).begin()))>
2849
11.7M
    {
2850
11.7M
        return decay_copy(t.begin());
2851
11.7M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
24.4k
    {
2850
24.4k
        return decay_copy(t.begin());
2851
24.4k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
422k
    {
2850
422k
        return decay_copy(t.begin());
2851
422k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
1.01M
    {
2850
1.01M
        return decay_copy(t.begin());
2851
1.01M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&>(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
11.7k
    {
2850
11.7k
        return decay_copy(t.begin());
2851
11.7k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
258k
    {
2850
258k
        return decay_copy(t.begin());
2851
258k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
123k
    {
2850
123k
        return decay_copy(t.begin());
2851
123k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
48.9k
    {
2850
48.9k
        return decay_copy(t.begin());
2851
48.9k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
3.10M
    {
2850
3.10M
        return decay_copy(t.begin());
2851
3.10M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
4.36M
    {
2850
4.36M
        return decay_copy(t.begin());
2851
4.36M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&>(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
23.5k
    {
2850
23.5k
        return decay_copy(t.begin());
2851
23.5k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
1.55M
    {
2850
1.55M
        return decay_copy(t.begin());
2851
1.55M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
763k
    {
2850
763k
        return decay_copy(t.begin());
2851
763k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, scn::v4::detail::priority_tag<1ul>)
2852
2853
    template <typename T>
2854
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2855
        noexcept(decay_copy(begin(SCN_FWD(t)))))
2856
        -> std::enable_if_t<
2857
            input_or_output_iterator<decltype(decay_copy(begin(SCN_FWD(t))))>,
2858
            decltype(decay_copy(begin(SCN_FWD(t))))>
2859
    {
2860
        return decay_copy(begin(SCN_FWD(t)));
2861
    }
2862
2863
public:
2864
    template <typename T>
2865
    constexpr auto operator()(T&& t) const
2866
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2867
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2868
11.7M
    {
2869
11.7M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
11.7M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
24.4k
    {
2869
24.4k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
24.4k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
422k
    {
2869
422k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
422k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
1.01M
    {
2869
1.01M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
1.01M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
11.7k
    {
2869
11.7k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
11.7k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
258k
    {
2869
258k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
258k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
123k
    {
2869
123k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
123k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
48.9k
    {
2869
48.9k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
48.9k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
3.10M
    {
2869
3.10M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
3.10M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
4.36M
    {
2869
4.36M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
4.36M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
23.5k
    {
2869
23.5k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
23.5k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
1.55M
    {
2869
1.55M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
1.55M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
763k
    {
2869
763k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
763k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__111__wrap_iterIPcEESB_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
2871
};
2872
2873
}  // namespace detail::begin_
2874
2875
inline constexpr auto begin = detail::begin_::fn{};
2876
2877
namespace detail::end_ {
2878
2879
template <typename T>
2880
void end(T&) = delete;
2881
template <typename T>
2882
void end(const T&) = delete;
2883
2884
struct fn {
2885
private:
2886
    template <typename T,
2887
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2888
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2889
                  nullptr>
2890
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2891
2892
    template <typename T,
2893
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2894
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2895
        -> decltype(t + std::extent_v<remove_cvref_t<T>>)
2896
    {
2897
        return t + std::extent_v<remove_cvref_t<T>>;
2898
    }
2899
2900
    template <typename T,
2901
              typename S = decltype(decay_copy(SCN_DECLVAL(T).end())),
2902
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2903
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2904
        noexcept(decay_copy(SCN_FWD(t).end())))
2905
        -> std::enable_if_t<sentinel_for<S, I>,
2906
                            decltype(decay_copy(SCN_FWD(t).end()))>
2907
83.3M
    {
2908
83.3M
        return decay_copy(SCN_FWD(t).end());
2909
83.3M
    }
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char const*, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
446k
    {
2908
446k
        return decay_copy(SCN_FWD(t).end());
2909
446k
    }
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, char const*, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
199k
    {
2908
199k
        return decay_copy(SCN_FWD(t).end());
2909
199k
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
270k
    {
2908
270k
        return decay_copy(SCN_FWD(t).end());
2909
270k
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
4.35M
    {
2908
4.35M
        return decay_copy(SCN_FWD(t).end());
2909
4.35M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
123k
    {
2908
123k
        return decay_copy(SCN_FWD(t).end());
2909
123k
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t const*, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
3.15M
    {
2908
3.15M
        return decay_copy(SCN_FWD(t).end());
2909
3.15M
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, wchar_t const*, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
1.52M
    {
2908
1.52M
        return decay_copy(SCN_FWD(t).end());
2909
1.52M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
1.57M
    {
2908
1.57M
        return decay_copy(SCN_FWD(t).end());
2909
1.57M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
70.8M
    {
2908
70.8M
        return decay_copy(SCN_FWD(t).end());
2909
70.8M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
763k
    {
2908
763k
        return decay_copy(SCN_FWD(t).end());
2909
763k
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, char const*, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, wchar_t const*, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
2910
2911
    template <typename T,
2912
              typename S = decltype(decay_copy(end(SCN_DECLVAL(T)))),
2913
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2914
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
2915
        decay_copy(end(SCN_FWD(t))))) -> std::enable_if_t<sentinel_for<S, I>, S>
2916
    {
2917
        return decay_copy(end(SCN_FWD(t)));
2918
    }
2919
2920
public:
2921
    template <typename T>
2922
    constexpr auto operator()(T&& t) const
2923
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2924
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2925
83.3M
    {
2926
83.3M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
83.3M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
446k
    {
2926
446k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
446k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
199k
    {
2926
199k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
199k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
270k
    {
2926
270k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
270k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
4.35M
    {
2926
4.35M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
4.35M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
123k
    {
2926
123k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
123k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
3.15M
    {
2926
3.15M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
3.15M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
1.52M
    {
2926
1.52M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
1.52M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
1.57M
    {
2926
1.57M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
1.57M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
70.8M
    {
2926
70.8M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
70.8M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
763k
    {
2926
763k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
763k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__111__wrap_iterIPcEESB_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
2928
};
2929
2930
}  // namespace detail::end_
2931
2932
inline constexpr auto end = detail::end_::fn{};
2933
2934
namespace detail {
2935
struct range_concept {
2936
    template <typename T>
2937
    auto requires_(T& t) -> decltype(ranges::begin(t), ranges::end(t));
2938
};
2939
}  // namespace detail
2940
2941
template <typename T>
2942
inline constexpr bool range = detail::requires_<detail::range_concept, T>;
2943
2944
template <typename T>
2945
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
2946
2947
template <typename R>
2948
using sentinel_t =
2949
    std::enable_if_t<range<R>, decltype(ranges::end(std::declval<R&>()))>;
2950
2951
template <typename R>
2952
using range_difference_t =
2953
    std::enable_if_t<range<R>, iter_difference_t<iterator_t<R>>>;
2954
2955
template <typename R>
2956
using range_value_t = std::enable_if_t<range<R>, iter_value_t<iterator_t<R>>>;
2957
2958
template <typename R>
2959
using range_reference_t =
2960
    std::enable_if_t<range<R>, iter_reference_t<iterator_t<R>>>;
2961
2962
namespace detail {
2963
template <typename, typename = void>
2964
inline constexpr bool is_object_pointer_v = false;
2965
template <typename P>
2966
inline constexpr bool
2967
    is_object_pointer_v<P,
2968
                        std::enable_if_t<std::is_pointer_v<P> &&
2969
                                         std::is_object_v<iter_value_t<P>>>> =
2970
        true;
2971
2972
namespace data_ {
2973
2974
struct fn {
2975
private:
2976
    template <typename T,
2977
              typename D = decltype(decay_copy(SCN_DECLVAL(T&).data()))>
2978
    static constexpr auto impl(T& t, priority_tag<1>) noexcept(noexcept(
2979
        decay_copy(t.data()))) -> std::enable_if_t<is_object_pointer_v<D>, D>
2980
5.44M
    {
2981
5.44M
        return t.data();
2982
5.44M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
223k
    {
2981
223k
        return t.data();
2982
223k
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
1.57M
    {
2981
1.57M
        return t.data();
2982
1.57M
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
811k
    {
2981
811k
        return t.data();
2982
811k
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
2.83M
    {
2981
2.83M
        return t.data();
2982
2.83M
    }
2983
2984
    template <typename T>
2985
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2986
        noexcept(scn::ranges::begin(SCN_FWD(t))))
2987
        -> std::enable_if_t<
2988
            is_object_pointer_v<decltype(scn::ranges::begin(SCN_FWD(t)))>,
2989
            decltype(scn::ranges::begin(SCN_FWD(t)))>
2990
0
    {
2991
0
        return scn::ranges::begin(SCN_FWD(t));
2992
0
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v4::detail::priority_tag<0ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v4::detail::priority_tag<0ul>)
2993
2994
public:
2995
    template <typename T>
2996
    constexpr auto operator()(T&& t) const
2997
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<1>{})))
2998
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<1>{}))
2999
5.44M
    {
3000
5.44M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
5.44M
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
223k
    {
3000
223k
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
223k
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
1.57M
    {
3000
1.57M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
1.57M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
_ZNK3scn2v46ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
811k
    {
3000
811k
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
811k
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
2.83M
    {
3000
2.83M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
2.83M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
3002
};
3003
3004
}  // namespace data_
3005
}  // namespace detail
3006
3007
inline constexpr auto data = detail::data_::fn{};
3008
3009
template <typename T>
3010
inline constexpr bool disable_sized_range = false;
3011
3012
namespace detail::size_ {
3013
3014
template <typename T>
3015
void size(T&&) = delete;
3016
template <typename T>
3017
void size(T&) = delete;
3018
3019
struct fn {
3020
private:
3021
    template <typename T, std::size_t N>
3022
    static constexpr std::size_t impl(const T (&&)[N], priority_tag<3>) noexcept
3023
    {
3024
        return N;
3025
    }
3026
3027
    template <typename T, std::size_t N>
3028
    static constexpr std::size_t impl(const T (&)[N], priority_tag<3>) noexcept
3029
    {
3030
        return N;
3031
    }
3032
3033
    template <typename T,
3034
              typename I = decltype(decay_copy(std::declval<T>().size()))>
3035
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
3036
        noexcept(decay_copy(SCN_FWD(t).size())))
3037
        -> std::enable_if_t<std::is_integral_v<I> &&
3038
                                !disable_sized_range<remove_cvref_t<T>>,
3039
                            I>
3040
2.54M
    {
3041
2.54M
        return decay_copy(SCN_FWD(t).size());
3042
2.54M
    }
_ZN3scn2v46ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
223k
    {
3041
223k
        return decay_copy(SCN_FWD(t).size());
3042
223k
    }
_ZN3scn2v46ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
1.57M
    {
3041
1.57M
        return decay_copy(SCN_FWD(t).size());
3042
1.57M
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESG_E4typeEOSH_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v46ranges6detail5size_2fn4implIRNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
98.7k
    {
3041
98.7k
        return decay_copy(SCN_FWD(t).size());
3042
98.7k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v46ranges6detail5size_2fn4implIRNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
647k
    {
3041
647k
        return decay_copy(SCN_FWD(t).size());
3042
647k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
3043
3044
    template <typename T,
3045
              typename I = decltype(decay_copy(size(std::declval<T>())))>
3046
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
3047
        noexcept(decay_copy(size(SCN_FWD(t)))))
3048
        -> std::enable_if_t<std::is_integral_v<I> &&
3049
                                !disable_sized_range<remove_cvref_t<T>>,
3050
                            I>
3051
    {
3052
        return decay_copy(size(SCN_FWD(t)));
3053
    }
3054
3055
    template <typename T,
3056
              typename I = decltype(scn::ranges::begin(SCN_DECLVAL(T))),
3057
              typename S = decltype(scn::ranges::end(SCN_DECLVAL(T))),
3058
              typename D = decltype(static_cast<std::size_t>(SCN_DECLVAL(S) -
3059
                                                             SCN_DECLVAL(I)))>
3060
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
3061
        static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t))))
3062
        -> std::enable_if_t<!std::is_array_v<remove_cvref_t<T>> &&
3063
                                sized_sentinel_for<S, I> && forward_iterator<I>,
3064
                            D>
3065
    {
3066
        return static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t));
3067
    }
3068
3069
public:
3070
    template <typename T>
3071
    constexpr auto operator()(T&& t) const
3072
        noexcept(noexcept(fn::impl(std::forward<T>(t), priority_tag<3>{})))
3073
            -> decltype(fn::impl(std::forward<T>(t), priority_tag<3>{}))
3074
2.54M
    {
3075
2.54M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
2.54M
    }
_ZNK3scn2v46ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
3074
223k
    {
3075
223k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
223k
    }
_ZNK3scn2v46ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
3074
1.57M
    {
3075
1.57M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
1.57M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSE_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSF_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
_ZNK3scn2v46ranges6detail5size_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Line
Count
Source
3074
98.7k
    {
3075
98.7k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
98.7k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
_ZNK3scn2v46ranges6detail5size_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Line
Count
Source
3074
647k
    {
3075
647k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
647k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
3077
};
3078
3079
}  // namespace detail::size_
3080
3081
inline constexpr auto size = detail::size_::fn{};
3082
3083
namespace detail {
3084
namespace ssize_ {
3085
struct fn {
3086
private:
3087
    template <typename T>
3088
    using ssize_return_t = std::conditional_t<sizeof(range_difference_t<T>) <
3089
                                                  sizeof(std::ptrdiff_t),
3090
                                              std::ptrdiff_t,
3091
                                              range_difference_t<T>>;
3092
3093
    template <typename T>
3094
    static constexpr auto impl(T&& t) noexcept(
3095
        noexcept(ranges::size(std::forward<T>(t))))
3096
        -> decltype(ranges::size(std::forward<T>(t)), ssize_return_t<T>())
3097
0
    {
3098
0
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
3099
0
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISE_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSE_EEEEE15difference_typeEE4typeELm8EElSN_E4typeE_EEOSE_
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISF_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSF_EEEEE15difference_typeEE4typeELm8EElSO_E4typeE_EEOSF_
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
3100
3101
public:
3102
    template <typename T>
3103
    constexpr auto operator()(T&& t) const
3104
        noexcept(noexcept(fn::impl(std::forward<T>(t))))
3105
            -> decltype(fn::impl(std::forward<T>(t)))
3106
0
    {
3107
0
        return fn::impl(std::forward<T>(t));
3108
0
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
3109
};
3110
}  // namespace ssize_
3111
}  // namespace detail
3112
3113
inline constexpr auto ssize = detail::ssize_::fn{};
3114
3115
namespace detail::empty_ {
3116
struct fn {
3117
private:
3118
    template <typename T>
3119
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
3120
        noexcept(static_cast<bool>(SCN_FWD(t).empty())))
3121
        -> decltype(static_cast<bool>(SCN_FWD(t).empty()))
3122
    {
3123
        return static_cast<bool>(SCN_FWD(t).empty());
3124
    }
3125
3126
    template <typename T>
3127
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
3128
        noexcept(ranges::size(SCN_FWD(t)) == 0))
3129
        -> decltype(ranges::size(SCN_FWD(t)) == 0)
3130
    {
3131
        return ranges::size(SCN_FWD(t)) == 0;
3132
    }
3133
3134
    template <typename T,
3135
              typename I = decltype(ranges::begin(std::declval<T>()))>
3136
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
3137
        noexcept(ranges::begin(t) == ranges::end(t)))
3138
        -> std::enable_if_t<forward_iterator<I>,
3139
                            decltype(ranges::begin(t) == ranges::end(t))>
3140
    {
3141
        return ranges::begin(t) == ranges::end(t);
3142
    }
3143
3144
public:
3145
    template <typename T>
3146
    constexpr auto operator()(T&& t) const
3147
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<2>{})))
3148
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<2>{}))
3149
    {
3150
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
3151
    }
3152
};
3153
}  // namespace detail::empty_
3154
3155
inline constexpr auto empty = detail::empty_::fn{};
3156
3157
/**
3158
 * \see `std::ranges::borrowed_range`
3159
 */
3160
template <typename T>
3161
inline constexpr bool borrowed_range =
3162
    range<T> && (std::is_lvalue_reference_v<T> ||
3163
                 enable_borrowed_range<detail::remove_cvref_t<T>>);
3164
3165
namespace detail {
3166
struct sized_range_concept {
3167
    template <typename T>
3168
    auto requires_(T& t) -> decltype(ranges::size(t));
3169
};
3170
}  // namespace detail
3171
3172
template <typename T>
3173
inline constexpr bool sized_range =
3174
    range<T> && !disable_sized_range<detail::remove_cvref_t<T>> &&
3175
    detail::requires_<detail::sized_range_concept, T>;
3176
3177
namespace detail {
3178
struct output_range_concept {
3179
    template <typename, typename>
3180
    static auto test(long) -> std::false_type;
3181
3182
    template <typename R, typename T>
3183
    static auto test(int)
3184
        -> std::enable_if_t<range<R> && output_iterator<iterator_t<R>, T>,
3185
                            std::true_type>;
3186
};
3187
}  // namespace detail
3188
3189
template <typename R, typename T>
3190
inline constexpr bool output_range =
3191
    decltype(detail::output_range_concept::test<R, T>(0))::value;
3192
3193
namespace detail {
3194
struct input_range_concept {
3195
    template <typename>
3196
    static auto test(long) -> std::false_type;
3197
3198
    template <typename T>
3199
    static auto test(int)
3200
        -> std::enable_if_t<range<T> && input_iterator<iterator_t<T>>,
3201
                            std::true_type>;
3202
};
3203
}  // namespace detail
3204
3205
template <typename T>
3206
inline constexpr bool input_range =
3207
    decltype(detail::input_range_concept::test<T>(0))::value;
3208
3209
namespace detail {
3210
struct forward_range_concept {
3211
    template <typename>
3212
    static auto test(long) -> std::false_type;
3213
3214
    template <typename T>
3215
    static auto test(int)
3216
        -> std::enable_if_t<input_range<T> && forward_iterator<iterator_t<T>>,
3217
                            std::true_type>;
3218
};
3219
}  // namespace detail
3220
3221
template <typename T>
3222
inline constexpr bool forward_range =
3223
    decltype(detail::forward_range_concept::test<T>(0))::value;
3224
3225
namespace detail {
3226
struct bidirectional_range_concept {
3227
    template <typename>
3228
    static auto test(long) -> std::false_type;
3229
3230
    template <typename T>
3231
    static auto test(int)
3232
        -> std::enable_if_t<forward_range<T> &&
3233
                                bidirectional_iterator<iterator_t<T>>,
3234
                            std::true_type>;
3235
};
3236
}  // namespace detail
3237
3238
template <typename T>
3239
inline constexpr bool bidirectional_range =
3240
    decltype(detail::bidirectional_range_concept::test<T>(0))::value;
3241
3242
namespace detail {
3243
struct random_access_range_concept {
3244
    template <typename>
3245
    static auto test(long) -> std::false_type;
3246
3247
    template <typename T>
3248
    static auto test(int)
3249
        -> std::enable_if_t<bidirectional_range<T> &&
3250
                                random_access_iterator<iterator_t<T>>,
3251
                            std::true_type>;
3252
};
3253
}  // namespace detail
3254
3255
template <typename T>
3256
inline constexpr bool random_access_range =
3257
    decltype(detail::random_access_range_concept::test<T>(0))::value;
3258
3259
namespace detail {
3260
// FIXME: Not to spec
3261
// We only require random_access_iterator, not contiguous_iterator
3262
// This is so that vector::iterator, string::iterator etc can model
3263
// contiguous_range.
3264
// If we do range-v3-style deep integration with iterator_traits then
3265
// this could be fixed
3266
struct contiguous_range_concept {
3267
    template <typename>
3268
    static auto test(long) -> std::false_type;
3269
3270
    template <typename T>
3271
    static auto test(int) -> std::enable_if_t<
3272
        random_access_range<T> && /* contiguous_iterator<iterator_t<T>>
3273
                                   * &&
3274
                                   */
3275
            detail::requires_<contiguous_range_concept, T>,
3276
        std::true_type>;
3277
3278
    template <typename T>
3279
    auto requires_(T& t)
3280
        -> decltype(requires_expr<std::is_same_v<
3281
                        decltype(ranges::data(t)),
3282
                        std::add_pointer_t<range_reference_t<T>>>>{});
3283
};
3284
}  // namespace detail
3285
3286
template <typename R>
3287
inline constexpr bool contiguous_range =
3288
    decltype(detail::contiguous_range_concept::test<R>(0))::value;
3289
3290
namespace detail {
3291
struct common_range_concept {
3292
    template <typename>
3293
    static auto test(long) -> std::false_type;
3294
3295
    template <typename T>
3296
    static auto test(int)
3297
        -> std::enable_if_t<range<T> &&
3298
                                std::is_same_v<iterator_t<T>, sentinel_t<T>>,
3299
                            std::true_type>;
3300
};
3301
}  // namespace detail
3302
3303
template <typename T>
3304
inline constexpr bool common_range =
3305
    decltype(detail::common_range_concept::test<T>(0))::value;
3306
3307
/**
3308
 * \see `std::ranges::dangling`
3309
 */
3310
struct dangling {
3311
    constexpr dangling() noexcept = default;
3312
3313
    template <typename... Args>
3314
    constexpr dangling(Args&&...) noexcept
3315
    {
3316
    }
3317
};
3318
3319
/**
3320
 * \see `std::ranges::borrowed_iterator_t`
3321
 */
3322
template <typename R>
3323
using borrowed_iterator_t =
3324
    std::conditional_t<borrowed_range<R>, iterator_t<R>, dangling>;
3325
3326
template <typename D>
3327
class view_interface {
3328
    static_assert(std::is_class<D>::value, "");
3329
    static_assert(std::is_same_v<D, std::remove_cv_t<D>>, "");
3330
3331
private:
3332
    constexpr D& derived() noexcept
3333
3.64M
    {
3334
3.64M
        return static_cast<D&>(*this);
3335
3.64M
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::derived()
Line
Count
Source
3333
811k
    {
3334
811k
        return static_cast<D&>(*this);
3335
811k
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived()
Line
Count
Source
3333
2.83M
    {
3334
2.83M
        return static_cast<D&>(*this);
3335
2.83M
    }
3336
3337
    constexpr const D& derived() const noexcept
3338
1.79M
    {
3339
1.79M
        return static_cast<const D&>(*this);
3340
1.79M
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::derived() const
Line
Count
Source
3338
223k
    {
3339
223k
        return static_cast<const D&>(*this);
3340
223k
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived() const
Line
Count
Source
3338
1.57M
    {
3339
1.57M
        return static_cast<const D&>(*this);
3340
1.57M
    }
3341
3342
public:
3343
    template <typename R = D>
3344
    [[nodiscard]] constexpr auto empty()
3345
        -> std::enable_if_t<forward_range<R>, bool>
3346
    {
3347
        return ranges::begin(derived()) == ranges::end(derived());
3348
    }
3349
3350
    template <typename R = D>
3351
    [[nodiscard]] constexpr auto empty() const
3352
        -> std::enable_if_t<forward_range<const R>, bool>
3353
    {
3354
        return ranges::begin(derived()) == ranges::end(derived());
3355
    }
3356
3357
    template <typename R = D,
3358
              typename = decltype(ranges::empty(std::declval<R&>()))>
3359
    constexpr explicit operator bool()
3360
    {
3361
        return !ranges::empty(derived());
3362
    }
3363
3364
    template <typename R = D,
3365
              typename = decltype(ranges::empty(std::declval<const R&>()))>
3366
    constexpr explicit operator bool() const
3367
    {
3368
        return !ranges::empty(derived());
3369
    }
3370
3371
    template <typename R = D,
3372
              typename = std::enable_if_t<contiguous_iterator<iterator_t<R>>>>
3373
    constexpr auto data()
3374
3.64M
    {
3375
3.64M
        return detail::to_address(ranges::begin(derived()));
3376
3.64M
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Line
Count
Source
3374
811k
    {
3375
811k
        return detail::to_address(ranges::begin(derived()));
3376
811k
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Line
Count
Source
3374
2.83M
    {
3375
2.83M
        return detail::to_address(ranges::begin(derived()));
3376
2.83M
    }
3377
3378
    template <typename R = D,
3379
              typename = std::enable_if_t<
3380
                  range<const R> && contiguous_iterator<iterator_t<const R>>>>
3381
    constexpr auto data() const
3382
1.79M
    {
3383
1.79M
        return detail::to_address(ranges::begin(derived()));
3384
1.79M
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>() const
Line
Count
Source
3382
223k
    {
3383
223k
        return detail::to_address(ranges::begin(derived()));
3384
223k
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>() const
Line
Count
Source
3382
1.57M
    {
3383
1.57M
        return detail::to_address(ranges::begin(derived()));
3384
1.57M
    }
3385
3386
    template <typename R = D,
3387
              typename = std::enable_if_t<
3388
                  forward_range<R> &&
3389
                  sized_sentinel_for<sentinel_t<R>, iterator_t<R>>>>
3390
    constexpr auto size()
3391
    {
3392
        return ranges::end(derived()) - ranges::begin(derived());
3393
    }
3394
3395
    template <typename R = D,
3396
              typename = std::enable_if_t<
3397
                  forward_range<const R> &&
3398
                  sized_sentinel_for<sentinel_t<const R>, iterator_t<const R>>>>
3399
    constexpr auto size() const
3400
    {
3401
        return ranges::end(derived()) - ranges::begin(derived());
3402
    }
3403
3404
#if 0
3405
    template <typename R = D, typename = std::enable_if_t<forward_range<R>>>
3406
    constexpr decltype(auto) front()
3407
    {
3408
        return *ranges::begin(derived());
3409
    }
3410
3411
    template <typename R = D,
3412
              typename = std::enable_if_t<forward_range<const R>>>
3413
    constexpr decltype(auto) front() const
3414
    {
3415
        return *ranges::begin(derived());
3416
    }
3417
3418
    template <
3419
        typename R = D,
3420
        typename = std::enable_if_t<bidirectional_range<R> && common_range<R>>>
3421
    constexpr decltype(auto) back()
3422
    {
3423
        return *ranges::prev(ranges::end(derived()));
3424
    }
3425
3426
    template <typename R = D,
3427
              typename = std::enable_if_t<bidirectional_range<const R> &&
3428
                                          common_range<const R>>>
3429
    constexpr decltype(auto) back() const
3430
    {
3431
        return *ranges::prev(ranges::end(derived()));
3432
    }
3433
3434
    template <typename R = D,
3435
              typename = std::enable_if_t<random_access_range<R>>>
3436
    constexpr decltype(auto) operator[](iter_difference_t<iterator_t<R>> n)
3437
    {
3438
        return ranges::begin(derived())[n];
3439
    }
3440
#endif
3441
3442
    template <typename R = D,
3443
              typename = std::enable_if_t<random_access_range<const R>>>
3444
    constexpr decltype(auto) operator[](
3445
        iter_difference_t<iterator_t<const R>> n) const
3446
    {
3447
        return ranges::begin(derived())[n];
3448
    }
3449
};
3450
3451
namespace detail::subrange_ {
3452
3453
template <typename I, typename S = I>
3454
class subrange : public view_interface<subrange<I, S>> {
3455
    static_assert(input_or_output_iterator<I>);
3456
    static_assert(sentinel_for<S, I>);
3457
3458
public:
3459
2.71M
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::subrange()
Line
Count
Source
3459
223k
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::subrange()
Line
Count
Source
3459
135k
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::subrange()
Line
Count
Source
3459
1.57M
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::subrange()
Line
Count
Source
3459
787k
    subrange() = default;
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::subrange()
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::subrange()
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::subrange()
3460
3461
    template <typename I_,
3462
              std::enable_if_t<std::is_convertible_v<I_, I>>* = nullptr>
3463
    constexpr subrange(I_ i, S s)
3464
93.3M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
93.3M
    {
3466
93.3M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS7_PKS8_lLl4096EEESC_EC2ISC_TnPNS5_9enable_ifIXsr3stdE16is_convertible_vIT_SC_EEvE4typeELPv0EEESG_SC_
Line
Count
Source
3464
258k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
258k
    {
3466
258k
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS7_PKS8_lLl1024EEESC_EC2ISC_TnPNS5_9enable_ifIXsr3stdE16is_convertible_vIT_SC_EEvE4typeELPv0EEESG_SC_
Line
Count
Source
3464
1.55M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
1.55M
    {
3466
1.55M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESE_S9_
Line
Count
Source
3464
1.82M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
1.82M
    {
3466
1.82M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESE_S9_
Line
Count
Source
3464
27.3M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
27.3M
    {
3466
27.3M
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESN_SI_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEENSE_ISG_E8sentinelILb1EEEEC2ISJ_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SJ_EEvE4typeELPv0EEESR_SM_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESD_EC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESI_SD_
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorES8_EC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESD_S8_
Line
Count
Source
3464
125k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
125k
    {
3466
125k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EENS5_15take_width_viewINSt3__117basic_string_viewIcNSC_11char_traitsIcEEEEE8sentinelILb1EEEEC2ISA_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESN_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKcS9_EENS5_15take_width_viewINSt3__117basic_string_viewIcNSC_11char_traitsIcEEEEE8sentinelILb1EEEEENSB_ISH_E8sentinelILb1EEEEC2ISK_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SK_EEvE4typeELPv0EEESR_SN_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EESA_EC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESF_SA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESK_SF_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESN_SI_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEENSE_ISG_E8sentinelILb1EEEEC2ISJ_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SJ_EEvE4typeELPv0EEESR_SM_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESD_EC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESI_SD_
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorES8_EC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESD_S8_
Line
Count
Source
3464
770k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
770k
    {
3466
770k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EENS5_15take_width_viewINSt3__117basic_string_viewIwNSC_11char_traitsIwEEEEE8sentinelILb1EEEEC2ISA_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESN_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKwS9_EENS5_15take_width_viewINSt3__117basic_string_viewIwNSC_11char_traitsIwEEEEE8sentinelILb1EEEEENSB_ISH_E8sentinelILb1EEEEC2ISK_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SK_EEvE4typeELPv0EEESR_SN_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EESA_EC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESF_SA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESK_SF_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKcS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEENSB_ISD_E8sentinelILb1EEEEC2ISG_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SG_EEvE4typeELPv0EEESO_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKwS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEENSB_ISD_E8sentinelILb1EEEEC2ISG_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SG_EEvE4typeELPv0EEESO_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES8_EC2IS8_TnPNS5_9enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESC_S8_
_ZN3scn2v46ranges6detail9subrange_8subrangeIPKcS6_EC2IS6_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S6_EEvE4typeELPv0EEESB_S6_
Line
Count
Source
3464
1.53M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
1.53M
    {
3466
1.53M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeIPKwS6_EC2IS6_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S6_EEvE4typeELPv0EEESB_S6_
Line
Count
Source
3464
59.9M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
59.9M
    {
3466
59.9M
    }
3467
3468
    template <
3469
        typename R,
3470
        std::enable_if_t<is_not_self<R, subrange> && borrowed_range<R> &&
3471
                         std::is_convertible_v<iterator_t<R>, I> &&
3472
                         std::is_convertible_v<sentinel_t<R>, S>>* = nullptr>
3473
    constexpr subrange(R&& r)
3474
        : m_iterator(scn::ranges::begin(r)), m_sentinel(scn::ranges::end(r))
3475
    {
3476
    }
3477
3478
    constexpr I begin() const
3479
250M
    {
3480
250M
        return m_iterator;
3481
250M
    }
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::begin() const
Line
Count
Source
3479
2.65M
    {
3480
2.65M
        return m_iterator;
3481
2.65M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::begin() const
Line
Count
Source
3479
381k
    {
3480
381k
        return m_iterator;
3481
381k
    }
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::begin() const
Line
Count
Source
3479
161M
    {
3480
161M
        return m_iterator;
3481
161M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::begin() const
Line
Count
Source
3479
2.31M
    {
3480
2.31M
        return m_iterator;
3481
2.31M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3479
4.92M
    {
3480
4.92M
        return m_iterator;
3481
4.92M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3479
77.6M
    {
3480
77.6M
        return m_iterator;
3481
77.6M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::begin() const
Line
Count
Source
3479
132k
    {
3480
132k
        return m_iterator;
3481
132k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::begin() const
Line
Count
Source
3479
777k
    {
3480
777k
        return m_iterator;
3481
777k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::begin() const
3482
    constexpr S end() const
3483
310M
    {
3484
310M
        return m_sentinel;
3485
310M
    }
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::end() const
Line
Count
Source
3483
1.28M
    {
3484
1.28M
        return m_sentinel;
3485
1.28M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::end() const
Line
Count
Source
3483
4.47M
    {
3484
4.47M
        return m_sentinel;
3485
4.47M
    }
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::end() const
Line
Count
Source
3483
152M
    {
3484
152M
        return m_sentinel;
3485
152M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::end() const
Line
Count
Source
3483
71.6M
    {
3484
71.6M
        return m_sentinel;
3485
71.6M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::end() const
Line
Count
Source
3483
4.35M
    {
3484
4.35M
        return m_sentinel;
3485
4.35M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::end() const
Line
Count
Source
3483
132k
    {
3484
132k
        return m_sentinel;
3485
132k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::end() const
Line
Count
Source
3483
75.0M
    {
3484
75.0M
        return m_sentinel;
3485
75.0M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::end() const
Line
Count
Source
3483
777k
    {
3484
777k
        return m_sentinel;
3485
777k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::end() const
3486
3487
    SCN_NODISCARD constexpr bool empty() const
3488
    {
3489
        return m_iterator == m_sentinel;
3490
    }
3491
3492
    template <typename I_ = I,
3493
              std::enable_if_t<sized_sentinel_for<S, I_>>* = nullptr>
3494
    constexpr std::size_t size() const
3495
4.69M
    {
3496
4.69M
        return static_cast<size_t>(m_sentinel - m_iterator);
3497
4.69M
    }
_ZNK3scn2v46ranges6detail9subrange_8subrangeIPKcS6_E4sizeIS6_TnPNSt3__19enable_ifIX18sized_sentinel_forIS6_T_EEvE4typeELPv0EEEmv
Line
Count
Source
3495
936k
    {
3496
936k
        return static_cast<size_t>(m_sentinel - m_iterator);
3497
936k
    }
_ZNK3scn2v46ranges6detail9subrange_8subrangeIPKwS6_E4sizeIS6_TnPNSt3__19enable_ifIX18sized_sentinel_forIS6_T_EEvE4typeELPv0EEEmv
Line
Count
Source
3495
3.76M
    {
3496
3.76M
        return static_cast<size_t>(m_sentinel - m_iterator);
3497
3.76M
    }
3498
3499
private:
3500
    SCN_NO_UNIQUE_ADDRESS I m_iterator{};
3501
    SCN_NO_UNIQUE_ADDRESS S m_sentinel{};
3502
};
3503
3504
template <typename I,
3505
          typename S,
3506
          std::enable_if_t<input_or_output_iterator<I> && sentinel_for<S, I>>* =
3507
              nullptr>
3508
subrange(I, S) -> subrange<I, S>;
3509
3510
template <typename R, std::enable_if_t<borrowed_range<R>>* = nullptr>
3511
subrange(R&&) -> subrange<iterator_t<R>, sentinel_t<R>>;
3512
3513
}  // namespace detail::subrange_
3514
3515
/**
3516
 * \see `std::ranges::subrange`
3517
 */
3518
using detail::subrange_::subrange;
3519
3520
template <typename I, typename S>
3521
inline constexpr bool enable_borrowed_range<subrange<I, S>> = true;
3522
3523
struct default_sentinel_t {};
3524
inline constexpr default_sentinel_t default_sentinel{};
3525
3526
}  // namespace ranges
3527
3528
namespace detail {
3529
3530
namespace char_t_fn {
3531
template <typename T, typename = typename T::value_type>
3532
constexpr auto impl_nonarray(priority_tag<2>)
3533
0
{
3534
0
    return tag_type<typename T::value_type>{};
3535
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char>(scn::v4::detail::priority_tag<2ul>)
3536
template <typename T, typename = decltype(SCN_DECLVAL(T&).begin())>
3537
constexpr auto impl_nonarray(priority_tag<1>)
3538
0
{
3539
0
    return tag_type<remove_cvref_t<decltype(*(SCN_DECLVAL(T&).begin()))>>{};
3540
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
3541
template <typename T>
3542
constexpr auto impl_nonarray(priority_tag<0>)
3543
{
3544
    return tag_type<remove_cvref_t<decltype(*begin(SCN_DECLVAL(T&)))>>{};
3545
}
3546
3547
template <typename T,
3548
          typename = std::enable_if_t<ranges::range<remove_cvref_t<T>>>>
3549
constexpr auto impl()
3550
0
{
3551
0
    using T_nocvref = remove_cvref_t<T>;
3552
0
    if constexpr (std::is_array_v<T_nocvref>) {
3553
0
        return tag_type<std::remove_all_extents_t<T_nocvref>>{};
3554
0
    }
3555
0
    else {
3556
0
        return impl_nonarray<T_nocvref>(priority_tag<2>{});
3557
0
    }
3558
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, void>()
3559
3560
template <typename Range>
3561
using result = decltype(impl<Range>());
3562
}  // namespace char_t_fn
3563
3564
template <typename Range>
3565
using char_t = typename char_t_fn::result<Range>::type;
3566
3567
template <typename Range, typename = void>
3568
inline constexpr bool is_file_or_narrow_range_impl = false;
3569
template <>
3570
inline constexpr bool is_file_or_narrow_range_impl<std::FILE*, void> = true;
3571
template <typename Range>
3572
inline constexpr bool
3573
    is_file_or_narrow_range_impl<Range,
3574
                                 std::enable_if_t<ranges::range<Range>>> =
3575
        std::is_same_v<char_t<Range>, char>;
3576
3577
template <typename Range>
3578
inline constexpr bool is_file_or_narrow_range =
3579
    is_file_or_narrow_range_impl<remove_cvref_t<Range>>;
3580
3581
template <typename Range, typename = void>
3582
inline constexpr bool is_wide_range = false;
3583
template <typename Range>
3584
inline constexpr bool
3585
    is_wide_range<Range,
3586
                  std::enable_if_t<ranges::range<remove_cvref_t<Range>>>> =
3587
        std::is_same_v<char_t<Range>, wchar_t>;
3588
3589
template <typename R, bool Borrowed = ranges::borrowed_range<R>>
3590
struct borrowed_tail_subrange {
3591
    using type = ranges::subrange<ranges::iterator_t<R>, ranges::sentinel_t<R>>;
3592
};
3593
template <typename R>
3594
struct borrowed_tail_subrange<R, false> {
3595
    using type = ranges::dangling;
3596
};
3597
3598
/// Equivalent to
3599
/// `ranges::subrange<ranges::iterator_t<R>,
3600
/// ranges::sentinel_t<R>>` if `R` is a `borrowed_range`, and
3601
/// `ranges::dangling` otherwise.
3602
///
3603
/// Similar to `ranges::borrowed_subrange_t<R>`, expect this preserves
3604
/// the range sentinel.
3605
template <typename R>
3606
using borrowed_tail_subrange_t = typename borrowed_tail_subrange<R>::type;
3607
3608
}  // namespace detail
3609
3610
namespace ranges {
3611
template <typename CharT, typename Traits>
3612
inline constexpr bool
3613
    enable_borrowed_range<std::basic_string_view<CharT, Traits>> = true;
3614
}
3615
3616
/////////////////////////////////////////////////////////////////
3617
// Small generic algorithms
3618
/////////////////////////////////////////////////////////////////
3619
3620
namespace detail {
3621
3622
/**
3623
 * Implementation of `std::min_element` without including `<algorithm>`
3624
 */
3625
template <typename It>
3626
constexpr It min_element(It first, It last)
3627
{
3628
    if (first == last) {
3629
        return last;
3630
    }
3631
3632
    It smallest = first;
3633
    ++first;
3634
    for (; first != last; ++first) {
3635
        if (*first < *smallest) {
3636
            smallest = first;
3637
        }
3638
    }
3639
    return smallest;
3640
}
3641
3642
/**
3643
 * Implementation of `std::min` without including `<algorithm>`
3644
 */
3645
template <typename T>
3646
constexpr T min(T a, T b) noexcept
3647
{
3648
    return (b < a) ? b : a;
3649
}
3650
3651
template <bool IsConstexpr, typename T, typename Ptr = const T*>
3652
constexpr Ptr find(Ptr first, Ptr last, T value)
3653
{
3654
    for (; first != last; ++first) {
3655
        if (*first == value) {
3656
            return first;
3657
        }
3658
    }
3659
    return last;
3660
}
3661
3662
template <>
3663
inline const char* find<false, char>(const char* first,
3664
                                     const char* last,
3665
                                     char value)
3666
0
{
3667
0
    auto ptr = static_cast<const char*>(
3668
0
        std::memchr(first, value, static_cast<size_t>(last - first)));
3669
0
    return ptr != nullptr ? ptr : last;
3670
0
}
3671
3672
}  // namespace detail
3673
3674
/////////////////////////////////////////////////////////////////
3675
// Errors
3676
/////////////////////////////////////////////////////////////////
3677
3678
/**
3679
 * Error class.
3680
 * Used as a return value for functions without a success value.
3681
 * Doesn't have a success state, and isn't default constructible:
3682
 * use `expected<void, scan_error>` to achieve that.
3683
 *
3684
 * \ingroup result
3685
 */
3686
class SCN_TRIVIAL_ABI scan_error {
3687
public:
3688
    /// Error code
3689
    enum code {
3690
        /// Input ended unexpectedly.
3691
        end_of_input,
3692
3693
        /// Format string was invalid.
3694
        /// Often a compile-time error, if supported or enabled.
3695
        invalid_format_string,
3696
3697
        /// Scanned value was invalid for given type,
3698
        /// or a value of the given couldn't be scanned.
3699
        invalid_scanned_value,
3700
3701
        /// Literal character specified in format string not found in source.
3702
        invalid_literal,
3703
3704
        /// Too many fill characters scanned,
3705
        /// field precision (max width) exceeded.
3706
        invalid_fill,
3707
3708
        /// Scanned field width was shorter than
3709
        /// what was specified as the minimum field width.
3710
        length_too_short,
3711
3712
        /// Source range is in an invalid state,
3713
        /// failed to continue reading.
3714
        invalid_source_state,
3715
3716
        /// Value out of range, too large (higher than the maximum value)
3717
        /// i.e. >2^32 for int32
3718
        value_positive_overflow,
3719
3720
        /// Value out of range, too small (lower than the minimum value)
3721
        /// i.e. <2^32 for int32
3722
        value_negative_overflow,
3723
3724
        /// Value out of range, magnitude too small, sign +
3725
        /// (between 0 and the smallest subnormal float)
3726
        value_positive_underflow,
3727
3728
        /// Value out of range, magnitude too small, sign -
3729
        /// (between 0 and the smallest subnormal float)
3730
        value_negative_underflow,
3731
3732
        max_error
3733
    };
3734
3735
private:
3736
    using code_t = code;
3737
3738
public:
3739
    /// Constructs an error with `c` and `m`
3740
138k
    constexpr scan_error(code_t c, const char* m) noexcept : m_msg(m), m_code(c)
3741
138k
    {
3742
138k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_code);
3743
138k
    }
3744
3745
    constexpr explicit operator code_t() const noexcept
3746
0
    {
3747
0
        return m_code;
3748
0
    }
3749
3750
    /// Get error code
3751
    SCN_NODISCARD constexpr code_t code() const noexcept
3752
0
    {
3753
0
        return m_code;
3754
0
    }
3755
    /// Get error message
3756
    SCN_NODISCARD constexpr auto msg() const noexcept -> const char*
3757
0
    {
3758
0
        return m_msg;
3759
0
    }
3760
3761
    /// Convert to a `std::errc`.
3762
    SCN_NODISCARD constexpr std::errc to_errc() const noexcept
3763
0
    {
3764
0
        switch (m_code) {
3765
0
            case end_of_input:
3766
0
            case invalid_format_string:
3767
0
            case invalid_scanned_value:
3768
0
            case invalid_literal:
3769
0
            case invalid_fill:
3770
0
            case length_too_short:
3771
0
                return std::errc::invalid_argument;
3772
0
            case invalid_source_state:
3773
0
                return std::errc::io_error;
3774
0
            case value_positive_overflow:
3775
0
            case value_negative_overflow:
3776
0
            case value_positive_underflow:
3777
0
            case value_negative_underflow:
3778
0
                return std::errc::result_out_of_range;
3779
0
            case max_error:
3780
0
            default:
3781
0
                assert(false);
3782
0
                SCN_UNREACHABLE;
3783
0
        }
3784
0
    }
3785
3786
private:
3787
    const char* m_msg;
3788
    code_t m_code;
3789
};
3790
3791
constexpr bool operator==(scan_error a, scan_error b) noexcept
3792
0
{
3793
0
    return a.code() == b.code();
3794
0
}
3795
constexpr bool operator!=(scan_error a, scan_error b) noexcept
3796
0
{
3797
0
    return !(a == b);
3798
0
}
3799
3800
constexpr bool operator==(scan_error a, enum scan_error::code b) noexcept
3801
0
{
3802
0
    return a.code() == b;
3803
0
}
3804
constexpr bool operator!=(scan_error a, enum scan_error::code b) noexcept
3805
0
{
3806
0
    return !(a == b);
3807
0
}
3808
3809
constexpr bool operator==(enum scan_error::code a, scan_error b) noexcept
3810
0
{
3811
0
    return a == b.code();
3812
0
}
3813
constexpr bool operator!=(enum scan_error::code a, scan_error b) noexcept
3814
0
{
3815
0
    return !(a == b);
3816
0
}
3817
3818
namespace detail {
3819
// Intentionally not constexpr, to give out a compile-time error
3820
SCN_COLD scan_error handle_error(scan_error e);
3821
}  // namespace detail
3822
3823
#if SCN_HAS_EXCEPTIONS
3824
3825
namespace detail {
3826
3827
class scan_format_string_error_base : public std::runtime_error {
3828
public:
3829
    explicit scan_format_string_error_base(const std::string& what_arg)
3830
        : runtime_error(what_arg)
3831
0
    {
3832
0
    }
3833
3834
    explicit scan_format_string_error_base(std::false_type,
3835
                                           const char* what_arg)
3836
        : runtime_error(what_arg)
3837
0
    {
3838
0
    }
3839
3840
    explicit scan_format_string_error_base(std::true_type, const char* what_arg)
3841
        : runtime_error(what_arg), m_internal_literal_msg(what_arg)
3842
0
    {
3843
0
    }
3844
3845
    // Doing everything in a `detail::` base class
3846
    // to make this a `friend` inside that namespace
3847
    // (essentially private)
3848
    friend const char* get_internal_literal_msg(
3849
        const scan_format_string_error_base& m)
3850
0
    {
3851
0
        return m.m_internal_literal_msg;
3852
0
    }
3853
3854
private:
3855
    const char* m_internal_literal_msg{nullptr};
3856
};
3857
3858
}  // namespace detail
3859
3860
/**
3861
 * An exception type used to report format string parsing errors.
3862
 */
3863
class scan_format_string_error : public detail::scan_format_string_error_base {
3864
public:
3865
    // Not `using` constructors to document them explicitly.
3866
3867
    /**
3868
     * Construct from a `std::string`.
3869
     */
3870
    explicit scan_format_string_error(const std::string& what_arg)
3871
        : scan_format_string_error_base(what_arg)
3872
0
    {
3873
0
    }
3874
3875
    /**
3876
     * Construct from a `const char*`.
3877
     */
3878
    explicit scan_format_string_error(const char* what_arg)
3879
        : scan_format_string_error_base(std::false_type{}, what_arg)
3880
0
    {
3881
0
    }
3882
3883
    /**
3884
     * Construct from a string literal.
3885
     */
3886
    template <std::size_t N>
3887
    explicit scan_format_string_error(const char (&what_arg)[N])
3888
        : scan_format_string_error_base(std::true_type{}, what_arg)
3889
    {
3890
    }
3891
};
3892
#endif
3893
3894
/**
3895
 * An `expected<T, scan_error>`.
3896
 *
3897
 * Not a type alias to shorten template names.
3898
 *
3899
 * \ingroup result
3900
 */
3901
template <typename T>
3902
struct scan_expected : public expected<T, scan_error> {
3903
    using expected<T, scan_error>::expected;
3904
3905
    scan_expected(const expected<T, scan_error>& other)
3906
        : expected<T, scan_error>(other)
3907
    {
3908
    }
3909
    scan_expected(expected<T, scan_error>&& other)
3910
0
        : expected<T, scan_error>(SCN_MOVE(other))
3911
0
    {
3912
0
    }
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<char const*>::scan_expected(scn::v4::expected<char const*, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::scan_expected(scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<wchar_t const*>::scan_expected(scn::v4::expected<wchar_t const*, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::scan_expected(scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>&&)
3913
};
3914
3915
namespace detail {
3916
constexpr auto unexpected_scan_error(enum scan_error::code c, const char* m)
3917
125k
{
3918
125k
    return unexpected(scan_error{c, m});
3919
125k
}
3920
3921
template <typename T>
3922
struct is_expected_impl<scan_expected<T>> : std::true_type {};
3923
}  // namespace detail
3924
3925
86.4k
#define SCN_TRY_IMPL_CONCAT(a, b)  a##b
3926
86.4k
#define SCN_TRY_IMPL_CONCAT2(a, b) SCN_TRY_IMPL_CONCAT(a, b)
3927
86.4k
#define SCN_TRY_TMP                SCN_TRY_IMPL_CONCAT2(_scn_try_tmp_, __LINE__)
3928
3929
#define SCN_TRY_DISCARD(x)                                      \
3930
3.91M
    if (auto&& SCN_TRY_TMP = (x); SCN_UNLIKELY(!SCN_TRY_TMP)) { \
3931
16.3k
        return ::scn::unexpected(SCN_TRY_TMP.error());          \
3932
16.3k
    }
3933
3934
#define SCN_TRY_ASSIGN(init, x)                        \
3935
7.43M
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
3936
7.43M
    if (SCN_UNLIKELY(!SCN_TRY_TMP)) {                  \
3937
70.1k
        return ::scn::unexpected(SCN_TRY_TMP.error()); \
3938
70.1k
    }                                                  \
3939
7.43M
    init = *SCN_FWD(SCN_TRY_TMP);
3940
6.36M
#define SCN_TRY(name, x) SCN_TRY_ASSIGN(auto name, x)
3941
3942
/////////////////////////////////////////////////////////////////
3943
// string_view utilities
3944
/////////////////////////////////////////////////////////////////
3945
3946
namespace detail {
3947
3948
template <typename T>
3949
struct is_string_view : std::false_type {};
3950
template <typename CharT, typename Traits>
3951
struct is_string_view<std::basic_string_view<CharT, Traits>> : std::true_type {
3952
};
3953
3954
// workarounds for MSVC string_view debug iterators
3955
template <typename CharT>
3956
constexpr std::basic_string_view<CharT> make_string_view_from_iterators(
3957
    typename std::basic_string_view<CharT>::iterator first,
3958
    typename std::basic_string_view<CharT>::iterator last)
3959
65.5M
{
3960
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3961
                                          decltype(first), decltype(last)> &&
3962
                  !SCN_MSVC_DEBUG_ITERATORS) {
3963
        return {first, last};
3964
    }
3965
65.5M
    else {
3966
65.5M
        return {to_address(first), static_cast<size_t>(std::distance(
3967
65.5M
                                       to_address(first), to_address(last)))};
3968
65.5M
    }
3969
65.5M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::make_string_view_from_iterators<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3959
3.20M
{
3960
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3961
                                          decltype(first), decltype(last)> &&
3962
                  !SCN_MSVC_DEBUG_ITERATORS) {
3963
        return {first, last};
3964
    }
3965
3.20M
    else {
3966
3.20M
        return {to_address(first), static_cast<size_t>(std::distance(
3967
3.20M
                                       to_address(first), to_address(last)))};
3968
3.20M
    }
3969
3.20M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::make_string_view_from_iterators<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
3959
62.3M
{
3960
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3961
                                          decltype(first), decltype(last)> &&
3962
                  !SCN_MSVC_DEBUG_ITERATORS) {
3963
        return {first, last};
3964
    }
3965
62.3M
    else {
3966
62.3M
        return {to_address(first), static_cast<size_t>(std::distance(
3967
62.3M
                                       to_address(first), to_address(last)))};
3968
62.3M
    }
3969
62.3M
}
3970
3971
template <typename CharT>
3972
constexpr std::basic_string_view<CharT> make_string_view_from_pointers(
3973
    const CharT* first,
3974
    const CharT* last)
3975
888k
{
3976
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3977
                                          const CharT*, const CharT*>) {
3978
        return {first, last};
3979
    }
3980
888k
    else {
3981
888k
        return {first, static_cast<size_t>(std::distance(first, last))};
3982
888k
    }
3983
888k
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::make_string_view_from_pointers<char>(char const*, char const*)
Line
Count
Source
3975
122k
{
3976
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3977
                                          const CharT*, const CharT*>) {
3978
        return {first, last};
3979
    }
3980
122k
    else {
3981
122k
        return {first, static_cast<size_t>(std::distance(first, last))};
3982
122k
    }
3983
122k
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::make_string_view_from_pointers<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
3975
766k
{
3976
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3977
                                          const CharT*, const CharT*>) {
3978
        return {first, last};
3979
    }
3980
766k
    else {
3981
766k
        return {first, static_cast<size_t>(std::distance(first, last))};
3982
766k
    }
3983
766k
}
3984
3985
template <typename CharT>
3986
constexpr auto make_string_view_iterator(
3987
    std::basic_string_view<CharT> sv,
3988
    typename std::basic_string_view<CharT>::iterator it) ->
3989
    typename std::basic_string_view<CharT>::iterator
3990
1.67M
{
3991
    if constexpr (std::is_constructible_v<
3992
                      typename std::basic_string_view<CharT>::iterator,
3993
                      decltype(it)> &&
3994
1.67M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3995
1.67M
        SCN_UNUSED(sv);
3996
1.67M
        return it;
3997
    }
3998
    else {
3999
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
4000
    }
4001
1.67M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator scn::v4::detail::make_string_view_iterator<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3990
1.67M
{
3991
    if constexpr (std::is_constructible_v<
3992
                      typename std::basic_string_view<CharT>::iterator,
3993
                      decltype(it)> &&
3994
1.67M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3995
1.67M
        SCN_UNUSED(sv);
3996
1.67M
        return it;
3997
    }
3998
    else {
3999
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
4000
    }
4001
1.67M
}
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator scn::v4::detail::make_string_view_iterator<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
4002
4003
template <typename CharT>
4004
constexpr auto make_string_view_iterator_from_pointer(
4005
    std::basic_string_view<CharT> sv,
4006
    const CharT* ptr) -> typename std::basic_string_view<CharT>::iterator
4007
{
4008
    if constexpr (std::is_constructible_v<
4009
                      typename std::basic_string_view<CharT>::iterator,
4010
                      const CharT*> &&
4011
                  !SCN_MSVC_DEBUG_ITERATORS) {
4012
        SCN_UNUSED(sv);
4013
        return ptr;
4014
    }
4015
    else {
4016
        return sv.begin() + std::distance(sv.data(), ptr);
4017
    }
4018
}
4019
4020
/////////////////////////////////////////////////////////////////
4021
// Lightweight Unicode facilities
4022
/////////////////////////////////////////////////////////////////
4023
4024
constexpr inline bool is_ascii_code_point(char32_t cp)
4025
0
{
4026
0
    return cp <= 0x7f;
4027
0
}
4028
4029
template <typename U8>
4030
constexpr std::size_t utf8_code_point_length_by_starting_code_unit(U8 ch)
4031
3.77M
{
4032
3.77M
    static_assert(sizeof(U8) == 1);
4033
4034
3.77M
    SCN_GCC_COMPAT_PUSH
4035
3.77M
    SCN_GCC_COMPAT_IGNORE("-Wsign-conversion")
4036
3.77M
    constexpr char lengths[] =
4037
3.77M
        "\1\1\1\1\1\1\1\1"  // highest bit is 0 -> single-byte
4038
3.77M
        "\1\1\1\1\1\1\1\1"
4039
3.77M
        "\0\0\0\0\0\0\0\0"  // highest bits 10 -> error, non-initial
4040
                            // byte
4041
3.77M
        "\2\2\2\2"          // highest bits 110 -> 2-byte cp
4042
3.77M
        "\3\3"              // highest bits 1110 -> 3-byte cp
4043
3.77M
        "\4";               // highest bits 11110 -> 4-byte cp
4044
3.77M
    return lengths[static_cast<unsigned char>(ch) >> 3];
4045
3.77M
    SCN_GCC_COMPAT_POP
4046
3.77M
}
4047
4048
template <typename U16>
4049
constexpr std::size_t utf16_code_point_length_by_starting_code_unit(U16 ch)
4050
{
4051
    static_assert(sizeof(U16) == 2);
4052
4053
    const auto lead = static_cast<uint16_t>(0xffff & ch);
4054
    if (lead >= 0xd800 && lead <= 0xdbff) {
4055
        // high surrogate
4056
        return 2;
4057
    }
4058
    if (lead >= 0xdc00 && lead <= 0xdfff) {
4059
        // unpaired low surrogate
4060
        return 0;
4061
    }
4062
    return 1;
4063
}
4064
4065
template <typename U>
4066
constexpr std::size_t code_point_length_by_starting_code_unit(U ch)
4067
137M
{
4068
137M
    if constexpr (sizeof(U) == 1) {
4069
3.77M
        return utf8_code_point_length_by_starting_code_unit(ch);
4070
    }
4071
    else if constexpr (sizeof(U) == 2) {
4072
        return utf16_code_point_length_by_starting_code_unit(ch);
4073
    }
4074
133M
    else {
4075
        // utf-32
4076
133M
        static_assert(sizeof(U) == 4);
4077
133M
        SCN_UNUSED(ch);
4078
133M
        return 1;
4079
133M
    }
4080
137M
}
unsigned long scn::v4::detail::code_point_length_by_starting_code_unit<char>(char)
Line
Count
Source
4067
3.77M
{
4068
3.77M
    if constexpr (sizeof(U) == 1) {
4069
3.77M
        return utf8_code_point_length_by_starting_code_unit(ch);
4070
    }
4071
    else if constexpr (sizeof(U) == 2) {
4072
        return utf16_code_point_length_by_starting_code_unit(ch);
4073
    }
4074
    else {
4075
        // utf-32
4076
        static_assert(sizeof(U) == 4);
4077
        SCN_UNUSED(ch);
4078
        return 1;
4079
    }
4080
3.77M
}
unsigned long scn::v4::detail::code_point_length_by_starting_code_unit<wchar_t>(wchar_t)
Line
Count
Source
4067
133M
{
4068
    if constexpr (sizeof(U) == 1) {
4069
        return utf8_code_point_length_by_starting_code_unit(ch);
4070
    }
4071
    else if constexpr (sizeof(U) == 2) {
4072
        return utf16_code_point_length_by_starting_code_unit(ch);
4073
    }
4074
133M
    else {
4075
        // utf-32
4076
133M
        static_assert(sizeof(U) == 4);
4077
133M
        SCN_UNUSED(ch);
4078
133M
        return 1;
4079
133M
    }
4080
133M
}
4081
4082
inline constexpr char32_t invalid_code_point = 0x110000;
4083
4084
inline constexpr char32_t decode_utf8_code_point_exhaustive(
4085
    std::string_view input)
4086
3.61M
{
4087
3.61M
    SCN_EXPECT(!input.empty() && input.size() <= 4);
4088
4089
3.61M
    const auto is_trailing_code_unit = [](char ch) {
4090
560k
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
4091
560k
    };
4092
4093
3.61M
    if (input.size() == 1) {
4094
3.27M
        if (static_cast<unsigned char>(input[0]) >= 0x80) {
4095
275
            SCN_UNLIKELY_ATTR
4096
275
            return invalid_code_point;
4097
275
        }
4098
3.27M
        return static_cast<char32_t>(input[0]);
4099
3.27M
    }
4100
4101
335k
    if (input.size() == 2) {
4102
99.4k
        if ((static_cast<unsigned char>(input[0]) & 0xe0) != 0xc0) {
4103
137
            SCN_UNLIKELY_ATTR
4104
137
            return invalid_code_point;
4105
137
        }
4106
99.3k
        if (!is_trailing_code_unit(input[1])) {
4107
8.72k
            SCN_UNLIKELY_ATTR
4108
8.72k
            return invalid_code_point;
4109
8.72k
        }
4110
4111
90.6k
        char32_t cp{};
4112
90.6k
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
4113
90.6k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
4114
90.6k
        return cp;
4115
99.3k
    }
4116
4117
236k
    if (input.size() == 3) {
4118
223k
        if ((static_cast<unsigned char>(input[0]) & 0xf0) != 0xe0) {
4119
30
            SCN_UNLIKELY_ATTR
4120
30
            return invalid_code_point;
4121
30
        }
4122
223k
        if (!is_trailing_code_unit(input[1]) ||
4123
223k
            !is_trailing_code_unit(input[2])) {
4124
2.80k
            SCN_UNLIKELY_ATTR
4125
2.80k
            return invalid_code_point;
4126
2.80k
        }
4127
4128
220k
        char32_t cp{};
4129
220k
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
4130
220k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
4131
220k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
4132
220k
        return cp;
4133
223k
    }
4134
4135
12.5k
    if (input.size() == 4) {
4136
12.5k
        if ((static_cast<unsigned char>(input[0]) & 0xf8) != 0xf0) {
4137
0
            SCN_UNLIKELY_ATTR
4138
0
            return invalid_code_point;
4139
0
        }
4140
12.5k
        if (static_cast<unsigned char>(input[0]) > 0xf4) {
4141
5.74k
            SCN_UNLIKELY_ATTR
4142
5.74k
            return invalid_code_point;
4143
5.74k
        }
4144
6.79k
        if (!is_trailing_code_unit(input[1]) ||
4145
6.79k
            !is_trailing_code_unit(input[2]) ||
4146
6.79k
            !is_trailing_code_unit(input[3])) {
4147
2.74k
            SCN_UNLIKELY_ATTR
4148
2.74k
            return invalid_code_point;
4149
2.74k
        }
4150
4151
4.04k
        char32_t cp{};
4152
4.04k
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
4153
4.04k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
4154
4.04k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
4155
4.04k
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
4156
4.04k
        return cp;
4157
6.79k
    }
4158
4159
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
4160
    // gcc 7 thinks we'll get here, even when we won't
4161
0
    SCN_EXPECT(false);
4162
0
#endif
4163
0
    SCN_UNREACHABLE;
4164
0
}
4165
4166
inline constexpr char32_t decode_utf8_code_point_exhaustive_valid(
4167
    std::string_view input)
4168
0
{
4169
0
    SCN_EXPECT(!input.empty() && input.size() <= 4);
4170
4171
0
    const auto is_trailing_code_unit = [](char ch) {
4172
0
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
4173
0
    };
4174
4175
0
    if (input.size() == 1) {
4176
0
        SCN_EXPECT(static_cast<unsigned char>(input[0]) < 0x80);
4177
0
        return static_cast<char32_t>(input[0]);
4178
0
    }
4179
4180
0
    if (input.size() == 2) {
4181
0
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xe0) == 0xc0);
4182
0
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4183
4184
0
        char32_t cp{};
4185
0
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
4186
0
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
4187
0
        return cp;
4188
0
    }
4189
4190
0
    if (input.size() == 3) {
4191
0
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf0) == 0xe0);
4192
0
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4193
0
        SCN_EXPECT(is_trailing_code_unit(input[2]));
4194
4195
0
        char32_t cp{};
4196
0
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
4197
0
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
4198
0
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
4199
0
        return cp;
4200
0
    }
4201
4202
0
    if (input.size() == 4) {
4203
0
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf8) == 0xf0);
4204
0
        SCN_EXPECT(static_cast<unsigned char>(input[0]) <= 0xf4);
4205
0
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4206
0
        SCN_EXPECT(is_trailing_code_unit(input[2]));
4207
0
        SCN_EXPECT(is_trailing_code_unit(input[3]));
4208
4209
0
        char32_t cp{};
4210
0
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
4211
0
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
4212
0
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
4213
0
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
4214
0
        return cp;
4215
0
    }
4216
4217
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
4218
    // gcc 7 thinks we'll get here, even when we won't
4219
0
    SCN_EXPECT(false);
4220
0
#endif
4221
0
    SCN_UNREACHABLE;
4222
0
}
4223
4224
template <typename CharT>
4225
inline constexpr char32_t decode_utf16_code_point_exhaustive(
4226
    std::basic_string_view<CharT> input)
4227
{
4228
    static_assert(sizeof(CharT) == 2);
4229
4230
    SCN_EXPECT(!input.empty() && input.size() <= 2);
4231
4232
    if (input.size() == 1) {
4233
        return static_cast<char32_t>(input[0]);
4234
    }
4235
4236
    const auto lead = static_cast<uint32_t>(input[0]);
4237
    const auto trail = static_cast<uint32_t>(input[1]);
4238
    if (lead < 0xd800 || lead > 0xdbff || trail < 0xdc00 || trail > 0xdfff) {
4239
        SCN_UNLIKELY_ATTR
4240
        return invalid_code_point;
4241
    }
4242
4243
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
4244
    return static_cast<char32_t>(cp + 0x10000);
4245
}
4246
4247
template <typename CharT>
4248
inline constexpr char32_t decode_utf16_code_point_exhaustive_valid(
4249
    std::basic_string_view<CharT> input)
4250
{
4251
    static_assert(sizeof(CharT) == 2);
4252
4253
    SCN_EXPECT(!input.empty() && input.size() <= 2);
4254
4255
    if (input.size() == 1) {
4256
        return static_cast<char32_t>(input[0]);
4257
    }
4258
4259
    const auto lead = static_cast<uint32_t>(input[0]);
4260
    const auto trail = static_cast<uint32_t>(input[1]);
4261
    SCN_EXPECT(lead >= 0xd800);
4262
    SCN_EXPECT(lead <= 0xdbff);
4263
    SCN_EXPECT(trail >= 0xdc00);
4264
    SCN_EXPECT(trail <= 0xdfff);
4265
4266
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
4267
    return static_cast<char32_t>(cp + 0x10000);
4268
}
4269
4270
template <typename CharT>
4271
inline constexpr char32_t decode_code_point_exhaustive(
4272
    std::basic_string_view<CharT> input)
4273
136M
{
4274
136M
    if constexpr (sizeof(CharT) == 1) {
4275
3.61M
        return decode_utf8_code_point_exhaustive(input);
4276
    }
4277
    else if constexpr (sizeof(CharT) == 2) {
4278
        return decode_utf16_code_point_exhaustive(input);
4279
    }
4280
133M
    else {
4281
133M
        SCN_EXPECT(input.size() == 1);
4282
133M
        auto cp = static_cast<char32_t>(input.front());
4283
133M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4284
720k
            return invalid_code_point;
4285
720k
        }
4286
132M
        return cp;
4287
133M
    }
4288
136M
}
char32_t scn::v4::detail::decode_code_point_exhaustive<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4273
3.61M
{
4274
3.61M
    if constexpr (sizeof(CharT) == 1) {
4275
3.61M
        return decode_utf8_code_point_exhaustive(input);
4276
    }
4277
    else if constexpr (sizeof(CharT) == 2) {
4278
        return decode_utf16_code_point_exhaustive(input);
4279
    }
4280
    else {
4281
        SCN_EXPECT(input.size() == 1);
4282
        auto cp = static_cast<char32_t>(input.front());
4283
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4284
            return invalid_code_point;
4285
        }
4286
        return cp;
4287
    }
4288
3.61M
}
char32_t scn::v4::detail::decode_code_point_exhaustive<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
4273
133M
{
4274
    if constexpr (sizeof(CharT) == 1) {
4275
        return decode_utf8_code_point_exhaustive(input);
4276
    }
4277
    else if constexpr (sizeof(CharT) == 2) {
4278
        return decode_utf16_code_point_exhaustive(input);
4279
    }
4280
133M
    else {
4281
133M
        SCN_EXPECT(input.size() == 1);
4282
133M
        auto cp = static_cast<char32_t>(input.front());
4283
133M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4284
720k
            return invalid_code_point;
4285
720k
        }
4286
132M
        return cp;
4287
133M
    }
4288
133M
}
4289
4290
template <typename CharT>
4291
inline constexpr char32_t decode_code_point_exhaustive_valid(
4292
    std::basic_string_view<CharT> input)
4293
0
{
4294
0
    if constexpr (sizeof(CharT) == 1) {
4295
0
        return decode_utf8_code_point_exhaustive_valid(input);
4296
    }
4297
    else if constexpr (sizeof(CharT) == 2) {
4298
        return decode_utf16_code_point_exhaustive_valid(input);
4299
    }
4300
0
    else {
4301
0
        SCN_EXPECT(input.size() == 1);
4302
0
        return static_cast<char32_t>(input.front());
4303
0
    }
4304
0
}
Unexecuted instantiation: char32_t scn::v4::detail::decode_code_point_exhaustive_valid<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: char32_t scn::v4::detail::decode_code_point_exhaustive_valid<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4305
4306
inline constexpr bool is_cp_space(char32_t cp) noexcept
4307
72.4M
{
4308
    // Pattern_White_Space property
4309
72.4M
    return (cp >= 0x09 && cp <= 0x0d) ||
4310
72.4M
           cp == 0x20 ||    // ASCII space characters
4311
72.4M
           cp == 0x85 ||    // NEXT LINE (NEL)
4312
72.4M
           cp == 0x200e ||  // LEFT-TO-RIGHT MARK
4313
72.4M
           cp == 0x200f ||  // RIGHT-TO-LEFT MARK
4314
72.4M
           cp == 0x2028 ||  // LINE SEPARATOR
4315
72.4M
           cp == 0x2029;    // PARAGRAPH SEPARATOR
4316
72.4M
}
4317
4318
}  // namespace detail
4319
4320
/////////////////////////////////////////////////////////////////
4321
// scan_buffer
4322
/////////////////////////////////////////////////////////////////
4323
4324
namespace detail {
4325
template <typename CharT>
4326
class basic_scan_buffer {
4327
public:
4328
    class forward_iterator;
4329
    class common_forward_iterator;
4330
4331
    using char_type = CharT;
4332
    using range_type =
4333
        ranges::subrange<forward_iterator, ranges::default_sentinel_t>;
4334
    using common_range_type = ranges::subrange<common_forward_iterator>;
4335
4336
    basic_scan_buffer(const basic_scan_buffer&) = delete;
4337
    basic_scan_buffer& operator=(const basic_scan_buffer&) = delete;
4338
    basic_scan_buffer(basic_scan_buffer&&) = delete;
4339
    basic_scan_buffer& operator=(basic_scan_buffer&&) = delete;
4340
922k
    virtual ~basic_scan_buffer() = default;
scn::v4::detail::basic_scan_buffer<char>::~basic_scan_buffer()
Line
Count
Source
4340
135k
    virtual ~basic_scan_buffer() = default;
scn::v4::detail::basic_scan_buffer<wchar_t>::~basic_scan_buffer()
Line
Count
Source
4340
787k
    virtual ~basic_scan_buffer() = default;
4341
4342
    virtual bool fill() = 0;
4343
4344
    virtual bool sync(std::ptrdiff_t position)
4345
922k
    {
4346
922k
        SCN_UNUSED(position);
4347
922k
        return true;
4348
922k
    }
scn::v4::detail::basic_scan_buffer<char>::sync(long)
Line
Count
Source
4345
135k
    {
4346
135k
        SCN_UNUSED(position);
4347
135k
        return true;
4348
135k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::sync(long)
Line
Count
Source
4345
787k
    {
4346
787k
        SCN_UNUSED(position);
4347
787k
        return true;
4348
787k
    }
4349
4350
    bool sync_all()
4351
35.3k
    {
4352
35.3k
        return sync(0);
4353
35.3k
    }
scn::v4::detail::basic_scan_buffer<char>::sync_all()
Line
Count
Source
4351
11.7k
    {
4352
11.7k
        return sync(0);
4353
11.7k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::sync_all()
Line
Count
Source
4351
23.5k
    {
4352
23.5k
        return sync(0);
4353
23.5k
    }
4354
4355
    SCN_NODISCARD std::ptrdiff_t chars_available() const
4356
187M
    {
4357
187M
        return m_putback_buffer.size() + m_current_view.size();
4358
187M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::chars_available() const
Line
Count
Source
4356
176M
    {
4357
176M
        return m_putback_buffer.size() + m_current_view.size();
4358
176M
    }
scn::v4::detail::basic_scan_buffer<char>::chars_available() const
Line
Count
Source
4356
10.6M
    {
4357
10.6M
        return m_putback_buffer.size() + m_current_view.size();
4358
10.6M
    }
4359
4360
    SCN_NODISCARD std::basic_string_view<CharT> current_view() const
4361
0
    {
4362
0
        return m_current_view;
4363
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::current_view() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::current_view() const
4364
4365
    SCN_NODISCARD std::basic_string<CharT>& putback_buffer()
4366
0
    {
4367
0
        return m_putback_buffer;
4368
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::putback_buffer()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::putback_buffer()
4369
    SCN_NODISCARD const std::basic_string<CharT>& putback_buffer() const
4370
    {
4371
        return m_putback_buffer;
4372
    }
4373
4374
    SCN_NODISCARD std::basic_string_view<CharT> get_segment_starting_at(
4375
        std::ptrdiff_t pos) const
4376
2.94M
    {
4377
2.94M
        if (SCN_UNLIKELY(
4378
2.94M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4379
1.89M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4380
1.89M
        }
4381
1.05M
        const auto start = pos - m_putback_buffer.size();
4382
1.05M
        SCN_EXPECT(start <= m_current_view.size());
4383
1.05M
        return m_current_view.substr(start);
4384
1.05M
    }
scn::v4::detail::basic_scan_buffer<char>::get_segment_starting_at(long) const
Line
Count
Source
4376
631k
    {
4377
631k
        if (SCN_UNLIKELY(
4378
631k
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4379
359k
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4380
359k
        }
4381
272k
        const auto start = pos - m_putback_buffer.size();
4382
272k
        SCN_EXPECT(start <= m_current_view.size());
4383
272k
        return m_current_view.substr(start);
4384
272k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::get_segment_starting_at(long) const
Line
Count
Source
4376
2.31M
    {
4377
2.31M
        if (SCN_UNLIKELY(
4378
2.31M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4379
1.53M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4380
1.53M
        }
4381
783k
        const auto start = pos - m_putback_buffer.size();
4382
783k
        SCN_EXPECT(start <= m_current_view.size());
4383
783k
        return m_current_view.substr(start);
4384
783k
    }
4385
4386
    SCN_NODISCARD CharT get_character_at(std::ptrdiff_t pos) const
4387
50.2M
    {
4388
50.2M
        if (SCN_UNLIKELY(
4389
50.2M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4390
26.1M
            return m_putback_buffer[pos];
4391
26.1M
        }
4392
24.0M
        const auto start = pos - m_putback_buffer.size();
4393
24.0M
        SCN_EXPECT(start < m_current_view.size());
4394
24.0M
        return m_current_view[start];
4395
24.0M
    }
scn::v4::detail::basic_scan_buffer<char>::get_character_at(long) const
Line
Count
Source
4387
2.57M
    {
4388
2.57M
        if (SCN_UNLIKELY(
4389
2.57M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4390
1.40M
            return m_putback_buffer[pos];
4391
1.40M
        }
4392
1.16M
        const auto start = pos - m_putback_buffer.size();
4393
1.16M
        SCN_EXPECT(start < m_current_view.size());
4394
1.16M
        return m_current_view[start];
4395
1.16M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::get_character_at(long) const
Line
Count
Source
4387
47.6M
    {
4388
47.6M
        if (SCN_UNLIKELY(
4389
47.6M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4390
24.7M
            return m_putback_buffer[pos];
4391
24.7M
        }
4392
22.8M
        const auto start = pos - m_putback_buffer.size();
4393
22.8M
        SCN_EXPECT(start < m_current_view.size());
4394
22.8M
        return m_current_view[start];
4395
22.8M
    }
4396
4397
    SCN_NODISCARD bool is_contiguous() const
4398
2.76M
    {
4399
2.76M
        return m_is_contiguous;
4400
2.76M
    }
scn::v4::detail::basic_scan_buffer<char>::is_contiguous() const
Line
Count
Source
4398
405k
    {
4399
405k
        return m_is_contiguous;
4400
405k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::is_contiguous() const
Line
Count
Source
4398
2.36M
    {
4399
2.36M
        return m_is_contiguous;
4400
2.36M
    }
4401
4402
    SCN_NODISCARD auto get_contiguous() const
4403
0
    {
4404
0
        SCN_EXPECT(is_contiguous());
4405
0
        return ranges::subrange<const CharT*>{
4406
0
            current_view().data(),
4407
0
            current_view().data() + current_view().size()};
4408
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::get_contiguous() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::get_contiguous() const
4409
4410
    SCN_NODISCARD range_type get();
4411
    SCN_NODISCARD common_range_type get_common_range();
4412
4413
protected:
4414
    friend class forward_iterator;
4415
    friend class common_forward_iterator;
4416
4417
    struct contiguous_tag {};
4418
    struct non_contiguous_tag {};
4419
4420
    basic_scan_buffer(contiguous_tag, std::basic_string_view<char_type> sv)
4421
0
        : m_current_view(sv), m_is_contiguous(true)
4422
0
    {
4423
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<char>::contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>::contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4424
4425
    basic_scan_buffer(non_contiguous_tag,
4426
                      std::basic_string_view<char_type> sv = {})
4427
922k
        : m_current_view(sv), m_is_contiguous(false)
4428
922k
    {
4429
922k
    }
scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<char>::non_contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4427
135k
        : m_current_view(sv), m_is_contiguous(false)
4428
135k
    {
4429
135k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>::non_contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
4427
787k
        : m_current_view(sv), m_is_contiguous(false)
4428
787k
    {
4429
787k
    }
4430
4431
    basic_scan_buffer(bool is_contiguous, std::basic_string_view<char_type> sv)
4432
0
        : m_current_view(sv), m_is_contiguous(is_contiguous)
4433
0
    {
4434
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(bool, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(bool, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4435
4436
    std::basic_string_view<char_type> m_current_view{};
4437
    std::basic_string<char_type> m_putback_buffer{};
4438
    bool m_is_contiguous{false};
4439
};
4440
4441
template <typename CharT>
4442
class basic_scan_buffer<CharT>::forward_iterator {
4443
public:
4444
    using value_type = CharT;
4445
    using reference = CharT;
4446
    using pointer = CharT*;
4447
    using difference_type = std::ptrdiff_t;
4448
    using iterator_category = std::forward_iterator_tag;
4449
4450
0
    forward_iterator() = default;
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator()
4451
4452
    forward_iterator(basic_scan_buffer<CharT>* parent, std::ptrdiff_t pos)
4453
922k
        : m_begin(parent), m_end(nullptr), m_position(pos)
4454
922k
    {
4455
922k
        SCN_EXPECT(parent);
4456
922k
        SCN_EXPECT(!parent->is_contiguous());
4457
922k
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(scn::v4::detail::basic_scan_buffer<char>*, long)
Line
Count
Source
4453
135k
        : m_begin(parent), m_end(nullptr), m_position(pos)
4454
135k
    {
4455
135k
        SCN_EXPECT(parent);
4456
135k
        SCN_EXPECT(!parent->is_contiguous());
4457
135k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(scn::v4::detail::basic_scan_buffer<wchar_t>*, long)
Line
Count
Source
4453
787k
        : m_begin(parent), m_end(nullptr), m_position(pos)
4454
787k
    {
4455
787k
        SCN_EXPECT(parent);
4456
787k
        SCN_EXPECT(!parent->is_contiguous());
4457
787k
    }
4458
4459
    forward_iterator(std::basic_string_view<CharT> view, std::ptrdiff_t pos)
4460
0
        : m_begin(const_cast<CharT*>(view.data())),
4461
0
          m_end(const_cast<CharT*>(view.data() + view.size())),
4462
0
          m_position(pos)
4463
0
    {
4464
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(std::__1::basic_string_view<char, std::__1::char_traits<char> >, long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, long)
4465
4466
    std::ptrdiff_t position() const
4467
3.49M
    {
4468
3.49M
        return m_position;
4469
3.49M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::position() const
Line
Count
Source
4467
711k
    {
4468
711k
        return m_position;
4469
711k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::position() const
Line
Count
Source
4467
2.78M
    {
4468
2.78M
        return m_position;
4469
2.78M
    }
4470
4471
    bool stores_parent() const
4472
455M
    {
4473
455M
        assert(m_begin);
4474
455M
        return m_end == nullptr;
4475
455M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::stores_parent() const
Line
Count
Source
4472
26.3M
    {
4473
26.3M
        assert(m_begin);
4474
26.3M
        return m_end == nullptr;
4475
26.3M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::stores_parent() const
Line
Count
Source
4472
429M
    {
4473
429M
        assert(m_begin);
4474
429M
        return m_end == nullptr;
4475
429M
    }
4476
4477
    basic_scan_buffer<CharT>* parent()
4478
0
    {
4479
0
        SCN_EXPECT(stores_parent());
4480
0
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4481
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::parent()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent()
4482
    const basic_scan_buffer<CharT>* parent() const
4483
265M
    {
4484
265M
        SCN_EXPECT(stores_parent());
4485
265M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4486
265M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::parent() const
Line
Count
Source
4483
15.3M
    {
4484
15.3M
        SCN_EXPECT(stores_parent());
4485
15.3M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4486
15.3M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent() const
Line
Count
Source
4483
250M
    {
4484
250M
        SCN_EXPECT(stores_parent());
4485
250M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4486
250M
    }
4487
4488
    std::basic_string_view<CharT> contiguous_segment() const
4489
2.94M
    {
4490
2.94M
        if (!stores_parent()) {
4491
0
            return make_string_view_from_pointers(
4492
0
                static_cast<const CharT*>(m_begin) + position(),
4493
0
                static_cast<const CharT*>(m_end));
4494
0
        }
4495
2.94M
        return parent()->get_segment_starting_at(position());
4496
2.94M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::contiguous_segment() const
Line
Count
Source
4489
631k
    {
4490
631k
        if (!stores_parent()) {
4491
0
            return make_string_view_from_pointers(
4492
0
                static_cast<const CharT*>(m_begin) + position(),
4493
0
                static_cast<const CharT*>(m_end));
4494
0
        }
4495
631k
        return parent()->get_segment_starting_at(position());
4496
631k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::contiguous_segment() const
Line
Count
Source
4489
2.31M
    {
4490
2.31M
        if (!stores_parent()) {
4491
0
            return make_string_view_from_pointers(
4492
0
                static_cast<const CharT*>(m_begin) + position(),
4493
0
                static_cast<const CharT*>(m_end));
4494
0
        }
4495
2.31M
        return parent()->get_segment_starting_at(position());
4496
2.31M
    }
4497
    auto to_contiguous_segment_iterator() const
4498
    {
4499
        return contiguous_segment().data();
4500
    }
4501
4502
    forward_iterator& operator++()
4503
35.1M
    {
4504
35.1M
        ++m_position;
4505
35.1M
        (void)read_at_position();
4506
35.1M
        return *this;
4507
35.1M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::operator++()
Line
Count
Source
4503
2.35M
    {
4504
2.35M
        ++m_position;
4505
2.35M
        (void)read_at_position();
4506
2.35M
        return *this;
4507
2.35M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator++()
Line
Count
Source
4503
32.7M
    {
4504
32.7M
        ++m_position;
4505
32.7M
        (void)read_at_position();
4506
32.7M
        return *this;
4507
32.7M
    }
4508
4509
    forward_iterator operator++(int)
4510
    {
4511
        auto copy = *this;
4512
        operator++();
4513
        return copy;
4514
    }
4515
4516
    CharT operator*() const
4517
50.2M
    {
4518
50.2M
        SCN_EXPECT(m_begin);
4519
4520
50.2M
        if (!stores_parent()) {
4521
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4522
0
            SCN_EXPECT(ptr != m_end);
4523
0
            return *ptr;
4524
0
        }
4525
4526
50.2M
        auto res = read_at_position();
4527
50.2M
        SCN_EXPECT(res);
4528
50.2M
        return parent()->get_character_at(m_position);
4529
50.2M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::operator*() const
Line
Count
Source
4517
2.57M
    {
4518
2.57M
        SCN_EXPECT(m_begin);
4519
4520
2.57M
        if (!stores_parent()) {
4521
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4522
0
            SCN_EXPECT(ptr != m_end);
4523
0
            return *ptr;
4524
0
        }
4525
4526
2.57M
        auto res = read_at_position();
4527
2.57M
        SCN_EXPECT(res);
4528
2.57M
        return parent()->get_character_at(m_position);
4529
2.57M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator*() const
Line
Count
Source
4517
47.6M
    {
4518
47.6M
        SCN_EXPECT(m_begin);
4519
4520
47.6M
        if (!stores_parent()) {
4521
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4522
0
            SCN_EXPECT(ptr != m_end);
4523
0
            return *ptr;
4524
0
        }
4525
4526
47.6M
        auto res = read_at_position();
4527
47.6M
        SCN_EXPECT(res);
4528
47.6M
        return parent()->get_character_at(m_position);
4529
47.6M
    }
4530
4531
    forward_iterator& batch_advance(std::ptrdiff_t n)
4532
0
    {
4533
0
        SCN_EXPECT(n >= 0);
4534
0
        m_position += n;
4535
0
        return *this;
4536
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::batch_advance(long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance(long)
4537
4538
    forward_iterator& batch_advance_to(std::ptrdiff_t i)
4539
0
    {
4540
0
        SCN_EXPECT(i >= m_position);
4541
0
        m_position = i;
4542
0
        return *this;
4543
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::batch_advance_to(long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance_to(long)
4544
4545
    friend bool operator==(const forward_iterator& lhs,
4546
                           const forward_iterator& rhs)
4547
10.4M
    {
4548
10.4M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4549
10.4M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4547
1.01M
    {
4548
1.01M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4549
1.01M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4547
9.44M
    {
4548
9.44M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4549
9.44M
    }
4550
    friend bool operator!=(const forward_iterator& lhs,
4551
                           const forward_iterator& rhs)
4552
10.4M
    {
4553
10.4M
        return !(lhs == rhs);
4554
10.4M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4552
1.01M
    {
4553
1.01M
        return !(lhs == rhs);
4554
1.01M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4552
9.44M
    {
4553
9.44M
        return !(lhs == rhs);
4554
9.44M
    }
4555
4556
    friend bool operator==(const forward_iterator& x,
4557
                           ranges::default_sentinel_t)
4558
26.2M
    {
4559
26.2M
        return x.is_at_end();
4560
26.2M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4558
1.38M
    {
4559
1.38M
        return x.is_at_end();
4560
1.38M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4558
24.8M
    {
4559
24.8M
        return x.is_at_end();
4560
24.8M
    }
4561
    friend bool operator==(ranges::default_sentinel_t,
4562
                           const forward_iterator& x)
4563
    {
4564
        return x.is_at_end();
4565
    }
4566
4567
    friend bool operator!=(const forward_iterator& x,
4568
                           ranges::default_sentinel_t)
4569
25.3M
    {
4570
25.3M
        return !x.is_at_end();
4571
25.3M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4569
1.44M
    {
4570
1.44M
        return !x.is_at_end();
4571
1.44M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4569
23.9M
    {
4570
23.9M
        return !x.is_at_end();
4571
23.9M
    }
4572
    friend bool operator!=(ranges::default_sentinel_t,
4573
                           const forward_iterator& x)
4574
    {
4575
        return !x.is_at_end();
4576
    }
4577
4578
private:
4579
    friend class basic_scan_buffer<CharT>;
4580
4581
    SCN_NODISCARD bool read_at_position() const
4582
136M
    {
4583
136M
        SCN_EXPECT(m_begin);
4584
4585
136M
        if (!stores_parent()) {
4586
0
            return true;
4587
0
        }
4588
4589
136M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4590
111M
            return true;
4591
111M
        }
4592
4593
50.1M
        while (m_position >= parent()->chars_available()) {
4594
25.1M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4595
39.5k
                return false;
4596
39.5k
            }
4597
25.1M
        }
4598
25.0M
        return true;
4599
25.1M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::read_at_position() const
Line
Count
Source
4582
7.76M
    {
4583
7.76M
        SCN_EXPECT(m_begin);
4584
4585
7.76M
        if (!stores_parent()) {
4586
0
            return true;
4587
0
        }
4588
4589
7.76M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4590
6.30M
            return true;
4591
6.30M
        }
4592
4593
2.90M
        while (m_position >= parent()->chars_available()) {
4594
1.46M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4595
17.8k
                return false;
4596
17.8k
            }
4597
1.46M
        }
4598
1.44M
        return true;
4599
1.46M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::read_at_position() const
Line
Count
Source
4582
129M
    {
4583
129M
        SCN_EXPECT(m_begin);
4584
4585
129M
        if (!stores_parent()) {
4586
0
            return true;
4587
0
        }
4588
4589
129M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4590
105M
            return true;
4591
105M
        }
4592
4593
47.2M
        while (m_position >= parent()->chars_available()) {
4594
23.6M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4595
21.7k
                return false;
4596
21.7k
            }
4597
23.6M
        }
4598
23.6M
        return true;
4599
23.6M
    }
4600
4601
    SCN_NODISCARD bool is_at_end() const
4602
51.6M
    {
4603
51.6M
        if (m_end) {
4604
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4605
0
        }
4606
51.6M
        if (!m_begin) {
4607
0
            return true;
4608
0
        }
4609
51.6M
        return !read_at_position();
4610
51.6M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::is_at_end() const
Line
Count
Source
4602
2.83M
    {
4603
2.83M
        if (m_end) {
4604
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4605
0
        }
4606
2.83M
        if (!m_begin) {
4607
0
            return true;
4608
0
        }
4609
2.83M
        return !read_at_position();
4610
2.83M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::is_at_end() const
Line
Count
Source
4602
48.8M
    {
4603
48.8M
        if (m_end) {
4604
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4605
0
        }
4606
48.8M
        if (!m_begin) {
4607
0
            return true;
4608
0
        }
4609
48.8M
        return !read_at_position();
4610
48.8M
    }
4611
4612
    // If m_end is null, m_begin points to the parent scan_buffer
4613
    // Otherwise, [m_begin, m_end) is the range of this iterator (and of
4614
    // the entire range)
4615
    mutable void* m_begin{nullptr};
4616
    mutable void* m_end{nullptr};
4617
    std::ptrdiff_t m_position{0};
4618
};
4619
4620
template <typename CharT>
4621
class basic_scan_buffer<CharT>::common_forward_iterator
4622
    : public basic_scan_buffer<CharT>::forward_iterator {
4623
    using base = basic_scan_buffer<CharT>::forward_iterator;
4624
4625
public:
4626
    common_forward_iterator() = default;
4627
4628
    explicit common_forward_iterator(forward_iterator it)
4629
0
        : base(it), m_is_end(it.is_at_end())
4630
0
    {
4631
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::common_forward_iterator::common_forward_iterator(scn::v4::detail::basic_scan_buffer<char>::forward_iterator)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::common_forward_iterator::common_forward_iterator(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator)
4632
    explicit common_forward_iterator(ranges::default_sentinel_t)
4633
0
        : base(), m_is_end(true)
4634
0
    {
4635
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::common_forward_iterator::common_forward_iterator(scn::v4::ranges::default_sentinel_t)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::common_forward_iterator::common_forward_iterator(scn::v4::ranges::default_sentinel_t)
4636
4637
    common_forward_iterator& operator++()
4638
    {
4639
        base::operator++();
4640
        m_is_end = base::is_at_end();
4641
        return *this;
4642
    }
4643
4644
    common_forward_iterator operator++(int)
4645
    {
4646
        auto copy = *this;
4647
        operator++();
4648
        return copy;
4649
    }
4650
4651
    common_forward_iterator& batch_advance(std::ptrdiff_t n)
4652
    {
4653
        base::batch_advance(n);
4654
        m_is_end = base::is_at_end();
4655
        return *this;
4656
    }
4657
4658
    common_forward_iterator& batch_advance_to(std::ptrdiff_t i)
4659
    {
4660
        base::batch_advance_to(i);
4661
        m_is_end = base::is_at_end();
4662
        return *this;
4663
    }
4664
4665
    friend bool operator==(const common_forward_iterator& lhs,
4666
                           const common_forward_iterator& rhs)
4667
    {
4668
        if (lhs.m_is_end && rhs.m_is_end) {
4669
            return true;
4670
        }
4671
        if (lhs.m_is_end != rhs.m_is_end) {
4672
            return false;
4673
        }
4674
        return static_cast<const forward_iterator&>(lhs) ==
4675
               static_cast<const forward_iterator&>(rhs);
4676
    }
4677
4678
    friend bool operator!=(const common_forward_iterator& lhs,
4679
                           const common_forward_iterator& rhs)
4680
    {
4681
        return !(lhs == rhs);
4682
    }
4683
4684
private:
4685
    bool m_is_end{};
4686
};
4687
4688
template <typename CharT>
4689
SCN_NODISCARD auto basic_scan_buffer<CharT>::get() -> range_type
4690
922k
{
4691
922k
    if (is_contiguous()) {
4692
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4693
0
                                ranges::default_sentinel};
4694
0
    }
4695
922k
    return ranges::subrange{forward_iterator{this, 0},
4696
922k
                            ranges::default_sentinel};
4697
922k
}
scn::v4::detail::basic_scan_buffer<char>::get()
Line
Count
Source
4690
135k
{
4691
135k
    if (is_contiguous()) {
4692
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4693
0
                                ranges::default_sentinel};
4694
0
    }
4695
135k
    return ranges::subrange{forward_iterator{this, 0},
4696
135k
                            ranges::default_sentinel};
4697
135k
}
scn::v4::detail::basic_scan_buffer<wchar_t>::get()
Line
Count
Source
4690
787k
{
4691
787k
    if (is_contiguous()) {
4692
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4693
0
                                ranges::default_sentinel};
4694
0
    }
4695
787k
    return ranges::subrange{forward_iterator{this, 0},
4696
787k
                            ranges::default_sentinel};
4697
787k
}
4698
4699
template <typename CharT>
4700
SCN_NODISCARD auto basic_scan_buffer<CharT>::get_common_range()
4701
    -> common_range_type
4702
{
4703
    auto r = get();
4704
    return ranges::subrange{common_forward_iterator{r.begin()},
4705
                            common_forward_iterator{r.end()}};
4706
}
4707
4708
static_assert(ranges::forward_range<scan_buffer::range_type>);
4709
4710
template <typename CharT>
4711
class basic_scan_string_buffer : public basic_scan_buffer<CharT> {
4712
    using base = basic_scan_buffer<CharT>;
4713
4714
public:
4715
    basic_scan_string_buffer(std::basic_string_view<CharT> sv)
4716
0
        : base(typename base::contiguous_tag{}, sv)
4717
0
    {
4718
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<char>::basic_scan_string_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<wchar_t>::basic_scan_string_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4719
4720
    bool fill() override
4721
0
    {
4722
0
        SCN_EXPECT(false);
4723
0
        SCN_UNREACHABLE;
4724
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<char>::fill()
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<wchar_t>::fill()
4725
};
4726
4727
template <typename CharT>
4728
basic_scan_string_buffer(std::basic_string_view<CharT>)
4729
    -> basic_scan_string_buffer<CharT>;
4730
4731
template <typename CharT>
4732
class basic_scan_forward_buffer_base : public basic_scan_buffer<CharT> {
4733
    using base = basic_scan_buffer<CharT>;
4734
4735
protected:
4736
922k
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4737
922k
    {
4738
922k
    }
scn::v4::detail::basic_scan_forward_buffer_base<char>::basic_scan_forward_buffer_base()
Line
Count
Source
4736
135k
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4737
135k
    {
4738
135k
    }
scn::v4::detail::basic_scan_forward_buffer_base<wchar_t>::basic_scan_forward_buffer_base()
Line
Count
Source
4736
787k
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4737
787k
    {
4738
787k
    }
4739
};
4740
4741
template <typename I, typename S>
4742
using less_than_compare =
4743
    decltype(SCN_DECLVAL(const I&) < SCN_DECLVAL(const S&));
4744
4745
template <typename Range>
4746
class basic_scan_forward_buffer_impl
4747
    : public basic_scan_forward_buffer_base<detail::char_t<Range>> {
4748
    static_assert(ranges::range<const Range> && std::is_object_v<Range>);
4749
4750
    using _char_type = detail::char_t<Range>;
4751
    using base = basic_scan_forward_buffer_base<_char_type>;
4752
4753
public:
4754
    using char_type = _char_type;
4755
    using range_type = Range;
4756
    using iterator = ranges::iterator_t<const Range>;
4757
    using sentinel = ranges::sentinel_t<const Range>;
4758
4759
    template <
4760
        typename R,
4761
        std::enable_if_t<is_not_self<R, basic_scan_forward_buffer_impl> &&
4762
                         std::is_convertible_v<R, const Range&>>* = nullptr>
4763
    basic_scan_forward_buffer_impl(R&& r)
4764
922k
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4765
922k
          m_cursor(ranges::begin(*m_range))
4766
922k
    {
4767
922k
    }
_ZN3scn2v46detail30basic_scan_forward_buffer_implINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEEC2IRKSF_TnPNS7_9enable_ifIXaa11is_not_selfIT_SG_Esr3stdE16is_convertible_vISL_SJ_EEvE4typeELPv0EEEOSL_
Line
Count
Source
4764
135k
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4765
135k
          m_cursor(ranges::begin(*m_range))
4766
135k
    {
4767
135k
    }
_ZN3scn2v46detail30basic_scan_forward_buffer_implINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEEC2IRKSF_TnPNS7_9enable_ifIXaa11is_not_selfIT_SG_Esr3stdE16is_convertible_vISL_SJ_EEvE4typeELPv0EEEOSL_
Line
Count
Source
4764
787k
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4765
787k
          m_cursor(ranges::begin(*m_range))
4766
787k
    {
4767
787k
    }
4768
4769
    bool fill() override
4770
25.1M
    {
4771
25.1M
        if (m_cursor == ranges::end(*m_range)) {
4772
39.5k
            return false;
4773
39.5k
        }
4774
25.0M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4775
25.0M
            SCN_EXPECT(m_cursor < ranges::end(*m_range));
4776
25.0M
        }
4777
25.0M
        if (!this->m_current_view.empty()) {
4778
24.1M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4779
24.1M
                                          this->m_current_view.begin(),
4780
24.1M
                                          this->m_current_view.end());
4781
24.1M
        }
4782
25.0M
        m_latest = *m_cursor;
4783
25.0M
        ++m_cursor;
4784
25.0M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4785
25.0M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4786
25.0M
            SCN_EXPECT(m_cursor <= ranges::end(*m_range));
4787
25.0M
        }
4788
25.0M
        return true;
4789
25.1M
    }
scn::v4::detail::basic_scan_forward_buffer_impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::fill()
Line
Count
Source
4770
1.46M
    {
4771
1.46M
        if (m_cursor == ranges::end(*m_range)) {
4772
17.8k
            return false;
4773
17.8k
        }
4774
1.44M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4775
1.44M
            SCN_EXPECT(m_cursor < ranges::end(*m_range));
4776
1.44M
        }
4777
1.44M
        if (!this->m_current_view.empty()) {
4778
1.31M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4779
1.31M
                                          this->m_current_view.begin(),
4780
1.31M
                                          this->m_current_view.end());
4781
1.31M
        }
4782
1.44M
        m_latest = *m_cursor;
4783
1.44M
        ++m_cursor;
4784
1.44M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4785
1.44M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4786
1.44M
            SCN_EXPECT(m_cursor <= ranges::end(*m_range));
4787
1.44M
        }
4788
1.44M
        return true;
4789
1.46M
    }
scn::v4::detail::basic_scan_forward_buffer_impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::fill()
Line
Count
Source
4770
23.6M
    {
4771
23.6M
        if (m_cursor == ranges::end(*m_range)) {
4772
21.7k
            return false;
4773
21.7k
        }
4774
23.6M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4775
23.6M
            SCN_EXPECT(m_cursor < ranges::end(*m_range));
4776
23.6M
        }
4777
23.6M
        if (!this->m_current_view.empty()) {
4778
22.8M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4779
22.8M
                                          this->m_current_view.begin(),
4780
22.8M
                                          this->m_current_view.end());
4781
22.8M
        }
4782
23.6M
        m_latest = *m_cursor;
4783
23.6M
        ++m_cursor;
4784
23.6M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4785
23.6M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4786
23.6M
            SCN_EXPECT(m_cursor <= ranges::end(*m_range));
4787
23.6M
        }
4788
23.6M
        return true;
4789
23.6M
    }
4790
4791
private:
4792
    const Range* m_range;
4793
    iterator m_cursor;
4794
    char_type m_latest{};
4795
};
4796
4797
template <typename R>
4798
basic_scan_forward_buffer_impl(const R&) -> basic_scan_forward_buffer_impl<R>;
4799
4800
struct default_file_tag {};
4801
struct gnu_file_tag {};
4802
struct bsd_file_tag {};
4803
struct musl_file_tag {};
4804
struct win32_file_tag {};
4805
4806
// Non-pretty workaround for MSVC silliness
4807
template <typename F, typename = void>
4808
inline constexpr bool is_gnu_file = false;
4809
template <typename F>
4810
inline constexpr bool
4811
    is_gnu_file<F,
4812
                std::void_t<decltype(SCN_DECLVAL(F)._IO_read_ptr),
4813
                            decltype(SCN_DECLVAL(F)._IO_read_end)>> = true;
4814
4815
template <typename F, typename = void>
4816
inline constexpr bool is_bsd_file = false;
4817
template <typename F>
4818
inline constexpr bool is_bsd_file<
4819
    F,
4820
    std::void_t<decltype(SCN_DECLVAL(F)._p), decltype(SCN_DECLVAL(F)._r)>> =
4821
    true;
4822
4823
template <typename F, typename = void>
4824
inline constexpr bool is_musl_file = false;
4825
template <typename F>
4826
inline constexpr bool is_musl_file<
4827
    F,
4828
    std::void_t<decltype(SCN_DECLVAL(F).rpos), decltype(SCN_DECLVAL(F).rend)>> =
4829
    true;
4830
4831
template <typename F>
4832
inline constexpr bool is_win32_file =
4833
    std::is_same_v<F, std::FILE> && SCN_WINDOWS && !SCN_MINGW;
4834
4835
constexpr auto get_file_tag()
4836
0
{
4837
0
    if constexpr (is_gnu_file<std::FILE>) {
4838
0
        return detail::tag_type<gnu_file_tag>{};
4839
0
    }
4840
0
    else if constexpr (is_bsd_file<std::FILE>) {
4841
0
        return detail::tag_type<bsd_file_tag>{};
4842
0
    }
4843
0
    else if constexpr (is_musl_file<std::FILE>) {
4844
0
        return detail::tag_type<musl_file_tag>{};
4845
0
    }
4846
0
    else if constexpr (is_win32_file<std::FILE>) {
4847
0
        return detail::tag_type<win32_file_tag>{};
4848
0
    }
4849
0
    else {
4850
0
        return detail::tag_type<default_file_tag>{};
4851
0
    }
4852
0
}
4853
4854
template <typename File>
4855
struct stdio_file_interface_base {
4856
0
    stdio_file_interface_base(File* f) : file(f) {}
4857
    ~stdio_file_interface_base() = default;
4858
4859
    stdio_file_interface_base(const stdio_file_interface_base&) = delete;
4860
    stdio_file_interface_base& operator=(const stdio_file_interface_base&) =
4861
        delete;
4862
4863
    stdio_file_interface_base(stdio_file_interface_base&& other)
4864
0
        : file(other.file)
4865
0
    {
4866
0
        other.file = nullptr;
4867
0
    }
4868
    stdio_file_interface_base& operator=(stdio_file_interface_base&& other)
4869
    {
4870
        file = other.file;
4871
        other.file = nullptr;
4872
        return *this;
4873
    }
4874
4875
    File* file;
4876
};
4877
4878
template <typename File, typename Tag>
4879
struct stdio_file_interface_impl;
4880
4881
template <typename File>
4882
struct stdio_file_interface_impl<File, default_file_tag>
4883
    : stdio_file_interface_base<File> {
4884
    void lock() {}
4885
    void unlock() {}
4886
4887
    bool has_buffering() const
4888
    {
4889
        return false;
4890
    }
4891
4892
    std::string_view buffer() const
4893
    {
4894
        return {};
4895
    }
4896
    void unsafe_advance_n(std::ptrdiff_t)
4897
    {
4898
        SCN_EXPECT(false);
4899
        SCN_UNREACHABLE;
4900
    }
4901
    void fill_buffer()
4902
    {
4903
        SCN_EXPECT(false);
4904
        SCN_UNREACHABLE;
4905
    }
4906
4907
    std::optional<char> read_one()
4908
    {
4909
        auto res = std::fgetc(this->file);
4910
        if (res == EOF) {
4911
            return std::nullopt;
4912
        }
4913
        return static_cast<char>(res);
4914
    }
4915
4916
    void prepare_putback() {}
4917
    void finalize_putback() {}
4918
4919
    bool putback(char ch)
4920
    {
4921
        return std::ungetc(static_cast<unsigned char>(ch), this->file) != EOF;
4922
    }
4923
};
4924
4925
template <typename File>
4926
struct posix_stdio_file_interface : stdio_file_interface_base<File> {
4927
    void lock()
4928
0
    {
4929
0
        flockfile(this->file);
4930
0
    }
4931
    void unlock()
4932
0
    {
4933
0
        funlockfile(this->file);
4934
0
    }
4935
4936
    static bool has_buffering()
4937
0
    {
4938
0
        return true;
4939
0
    }
4940
4941
    std::optional<char> read_one()
4942
0
    {
4943
0
        auto res = getc_unlocked(this->file);
4944
0
        if (res == EOF) {
4945
0
            return std::nullopt;
4946
0
        }
4947
0
        return static_cast<char>(res);
4948
0
    }
4949
4950
    void prepare_putback()
4951
0
    {
4952
0
        unlock();
4953
0
    }
4954
    void finalize_putback()
4955
0
    {
4956
0
        lock();
4957
0
    }
4958
4959
    bool putback(char ch)
4960
0
    {
4961
0
        return std::ungetc(static_cast<unsigned char>(ch), this->file) != EOF;
4962
0
    }
4963
};
4964
4965
template <typename File>
4966
struct stdio_file_interface_impl<File, gnu_file_tag>
4967
    : posix_stdio_file_interface<File> {
4968
    std::string_view buffer() const
4969
0
    {
4970
0
        return make_string_view_from_pointers(this->file->_IO_read_ptr,
4971
0
                                              this->file->_IO_read_end);
4972
0
    }
4973
    void unsafe_advance_n(std::ptrdiff_t n)
4974
0
    {
4975
0
        SCN_EXPECT(this->file->_IO_read_ptr != nullptr);
4976
0
        SCN_EXPECT(this->file->_IO_read_end - this->file->_IO_read_ptr >= n);
4977
0
        this->file->_IO_read_ptr += n;
4978
0
    }
4979
    void fill_buffer()
4980
0
    {
4981
0
        if (__uflow(this->file) != EOF) {
4982
0
            --this->file->_IO_read_ptr;
4983
0
        }
4984
0
    }
4985
};
4986
4987
template <typename File>
4988
struct stdio_file_interface_impl<File, bsd_file_tag>
4989
    : posix_stdio_file_interface<File> {
4990
    std::string_view buffer() const
4991
    {
4992
        return {reinterpret_cast<const char*>(this->file->_p),
4993
                static_cast<std::size_t>(this->file->_r)};
4994
    }
4995
    void unsafe_advance_n(std::ptrdiff_t n)
4996
    {
4997
        SCN_EXPECT(this->file->_p != nullptr);
4998
        SCN_EXPECT(this->file->_r >= n);
4999
        this->file->_p += n;
5000
        this->file->_r -= n;
5001
    }
5002
    void fill_buffer()
5003
    {
5004
        if (__srget(this->file) != EOF) {
5005
            --this->file->_p;
5006
            ++this->file->_r;
5007
        }
5008
    }
5009
};
5010
5011
template <typename File>
5012
struct stdio_file_interface_impl<File, musl_file_tag>
5013
    : posix_stdio_file_interface<File> {
5014
    std::string_view buffer() const
5015
    {
5016
        return make_string_view_from_pointers(
5017
            reinterpret_cast<const char*>(this->file->rpos),
5018
            reinterpret_cast<const char*>(this->file->rend));
5019
    }
5020
    void unsafe_advance_n(std::ptrdiff_t n)
5021
    {
5022
        SCN_EXPECT(this->file->rpos != nullptr);
5023
        SCN_EXPECT(this->file->rend - this->file->rpos >= n);
5024
        this->file->rpos += n;
5025
    }
5026
    void fill_buffer()
5027
    {
5028
        if (__uflow(this->file) != EOF) {
5029
            --this->file->rpos;
5030
        }
5031
    }
5032
};
5033
5034
template <typename File>
5035
struct stdio_file_interface_impl<File, win32_file_tag>
5036
    : stdio_file_interface_base<File> {
5037
    void lock()
5038
    {
5039
        _lock_file(this->file);
5040
    }
5041
    void unlock()
5042
    {
5043
        _unlock_file(this->file);
5044
    }
5045
5046
    static bool has_buffering()
5047
    {
5048
        return false;
5049
    }
5050
5051
    std::string_view buffer() const
5052
    {
5053
        return {};
5054
    }
5055
    void unsafe_advance_n(std::ptrdiff_t n)
5056
    {
5057
        SCN_EXPECT(false);
5058
        SCN_UNREACHABLE;
5059
    }
5060
    void fill_buffer()
5061
    {
5062
        SCN_EXPECT(false);
5063
        SCN_UNREACHABLE;
5064
    }
5065
5066
    std::optional<char> read_one()
5067
    {
5068
        auto res = _fgetc_nolock(this->file);
5069
        if (res == EOF) {
5070
            return std::nullopt;
5071
        }
5072
        return static_cast<char>(res);
5073
    }
5074
5075
    void prepare_putback() {}
5076
    void finalize_putback() {}
5077
5078
    bool putback(char ch)
5079
    {
5080
        return _ungetc_nolock(static_cast<unsigned char>(ch), this->file) !=
5081
               EOF;
5082
    }
5083
};
5084
5085
using stdio_file_interface =
5086
    stdio_file_interface_impl<std::FILE, decltype(get_file_tag())::type>;
5087
5088
template <typename FileInterface>
5089
class basic_scan_file_buffer : public basic_scan_buffer<char> {
5090
    using base = basic_scan_buffer<char>;
5091
5092
public:
5093
    explicit basic_scan_file_buffer(FileInterface file);
5094
    ~basic_scan_file_buffer();
5095
5096
    bool fill() override;
5097
5098
    bool sync(std::ptrdiff_t position) override;
5099
5100
private:
5101
    FileInterface m_file;
5102
    std::optional<char_type> m_latest{std::nullopt};
5103
};
5104
5105
struct scan_file_buffer : public basic_scan_file_buffer<stdio_file_interface> {
5106
    explicit scan_file_buffer(std::FILE* file)
5107
0
        : basic_scan_file_buffer(stdio_file_interface{file})
5108
0
    {
5109
0
    }
5110
};
5111
5112
extern template basic_scan_file_buffer<
5113
    stdio_file_interface>::basic_scan_file_buffer(stdio_file_interface);
5114
extern template basic_scan_file_buffer<
5115
    stdio_file_interface>::~basic_scan_file_buffer();
5116
extern template bool basic_scan_file_buffer<stdio_file_interface>::fill();
5117
extern template bool basic_scan_file_buffer<stdio_file_interface>::sync(
5118
    std::ptrdiff_t);
5119
5120
template <typename CharT>
5121
class basic_scan_ref_buffer : public basic_scan_buffer<CharT> {
5122
    using base = basic_scan_buffer<CharT>;
5123
5124
public:
5125
    basic_scan_ref_buffer(base& other, std::ptrdiff_t starting_pos)
5126
0
        : base(other.is_contiguous(), std::basic_string_view<CharT>{}),
5127
0
          m_other(&other),
5128
0
          m_starting_pos(starting_pos)
5129
0
    {
5130
0
        this->m_current_view = other.get_segment_starting_at(starting_pos);
5131
0
        m_fill_needs_to_propagate = other.get_segment_starting_at(0).end() ==
5132
0
                                    this->m_current_view.end();
5133
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::basic_scan_ref_buffer(scn::v4::detail::basic_scan_buffer<char>&, long)
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::basic_scan_ref_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>&, long)
5134
5135
    basic_scan_ref_buffer(std::basic_string_view<CharT> view)
5136
0
        : base(true, view), m_other(nullptr)
5137
0
    {
5138
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::basic_scan_ref_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::basic_scan_ref_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
5139
5140
    bool fill() override
5141
0
    {
5142
0
        if (!m_other) {
5143
0
            return false;
5144
0
        }
5145
0
        SCN_EXPECT(m_starting_pos >= 0);
5146
5147
0
        if (m_fill_needs_to_propagate) {
5148
0
            auto ret = m_other->fill();
5149
0
            this->m_current_view = m_other->current_view();
5150
0
            this->m_putback_buffer =
5151
0
                m_other->putback_buffer().substr(m_starting_pos);
5152
0
            return ret;
5153
0
        }
5154
5155
0
        m_fill_needs_to_propagate = true;
5156
0
        this->m_putback_buffer = std::basic_string<CharT>{this->m_current_view};
5157
0
        this->m_current_view = m_other->current_view();
5158
0
        return true;
5159
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::fill()
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::fill()
5160
5161
private:
5162
    base* m_other;
5163
    std::ptrdiff_t m_starting_pos{-1};
5164
    bool m_fill_needs_to_propagate{false};
5165
};
5166
5167
template <typename CharT>
5168
basic_scan_ref_buffer(basic_scan_buffer<CharT>&, std::ptrdiff_t)
5169
    -> basic_scan_ref_buffer<CharT>;
5170
5171
template <typename CharT>
5172
basic_scan_ref_buffer(std::basic_string_view<CharT>)
5173
    -> basic_scan_ref_buffer<CharT>;
5174
5175
template <typename Range>
5176
auto make_string_scan_buffer(const Range& range)
5177
{
5178
    return basic_scan_string_buffer(
5179
        std::basic_string_view{ranges::data(range), ranges::size(range)});
5180
}
5181
5182
template <typename Range>
5183
auto make_forward_scan_buffer(const Range& range)
5184
922k
{
5185
922k
    return basic_scan_forward_buffer_impl(range);
5186
922k
}
auto scn::v4::detail::make_forward_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
5184
135k
{
5185
135k
    return basic_scan_forward_buffer_impl(range);
5186
135k
}
auto scn::v4::detail::make_forward_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
5184
787k
{
5185
787k
    return basic_scan_forward_buffer_impl(range);
5186
787k
}
5187
5188
inline auto make_file_scan_buffer(std::FILE* file)
5189
0
{
5190
0
    return scan_file_buffer(file);
5191
0
}
5192
}  // namespace detail
5193
5194
/////////////////////////////////////////////////////////////////
5195
// make_scan_buffer
5196
/////////////////////////////////////////////////////////////////
5197
5198
/**
5199
 * \defgroup scannable Scannable sources
5200
 *
5201
 * \brief Description of the `scannable_range` and `scannable_source`
5202
 * concepts.
5203
 *
5204
 * A range is considered scannable, if it models at least `forward_range`,
5205
 * and its character type is correct (its value type is the same as the one
5206
 * of the format string).
5207
 * If the range additionally models `contiguous_range` and `sized_range`,
5208
 * additional optimizations are enabled.
5209
 *
5210
 * \code{.cpp}
5211
 * // Exposition only
5212
 * template <typename Range, typename CharT>
5213
 * concept scannable_range =
5214
 *     ranges::forward_range<Range> &&
5215
 *     std::same_as<ranges::range_value_t<Range>, CharT>;
5216
 * \endcode
5217
 *
5218
 * Additionally, files (`std::FILE*`) can be scanned from.
5219
 * Files are always considered to be narrow (`char`-oriented).
5220
 * Thus, the entire concept is:
5221
 *
5222
 * \code{.cpp}
5223
 * // Exposition only
5224
 * template <typename Source, typename CharT>
5225
 * concept scannable_source =
5226
 *   (std::same_as<std::remove_cvref_t<Source>, std::FILE*> &&
5227
 *    std::same_as<CharT, char>) ||
5228
 *   scannable_range<Source, CharT>;
5229
 * \endcode
5230
 */
5231
5232
/**
5233
 * Tag type to indicate an invalid range given to `scn::scan`
5234
 *
5235
 * \ingroup scannable
5236
 */
5237
struct invalid_input_range {};
5238
5239
struct invalid_char_type : invalid_input_range {};
5240
struct custom_char_traits : invalid_input_range {};
5241
struct file_marker_found : invalid_input_range {};
5242
struct insufficient_range : invalid_input_range {};
5243
5244
namespace detail {
5245
template <typename CharT>
5246
inline constexpr bool is_valid_char_type =
5247
    std::is_same_v<std::remove_const_t<CharT>, char> ||
5248
    std::is_same_v<std::remove_const_t<CharT>, wchar_t>;
5249
5250
namespace _make_scan_buffer {
5251
// buffer -> ref_buffer
5252
inline auto impl(scan_buffer::range_type r, priority_tag<4>) noexcept
5253
    -> basic_scan_ref_buffer<char>
5254
0
{
5255
0
    if (!r.begin().stores_parent()) {
5256
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
5257
0
    }
5258
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
5259
0
}
5260
inline auto impl(wscan_buffer::range_type r, priority_tag<4>) noexcept
5261
    -> basic_scan_ref_buffer<wchar_t>
5262
0
{
5263
0
    if (!r.begin().stores_parent()) {
5264
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
5265
0
    }
5266
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
5267
0
}
5268
5269
// string_view -> string_buffer
5270
template <typename CharT>
5271
auto impl(std::basic_string_view<CharT> r, priority_tag<3>) noexcept
5272
{
5273
    if constexpr (is_valid_char_type<CharT>) {
5274
        return r;
5275
        // return make_string_scan_buffer(r);
5276
    }
5277
    else {
5278
        return invalid_char_type{};
5279
    }
5280
}
5281
5282
// string& -> string_buffer
5283
template <typename CharT, typename Traits, typename Allocator>
5284
auto impl(const std::basic_string<CharT, Traits, Allocator>& r,
5285
          priority_tag<3>) noexcept
5286
0
{
5287
    if constexpr (!is_valid_char_type<CharT>) {
5288
        return invalid_char_type{};
5289
    }
5290
    else if constexpr (!std::is_same_v<Traits, std::char_traits<CharT>>) {
5291
        return custom_char_traits{};
5292
    }
5293
0
    else {
5294
0
        return std::basic_string_view<CharT>{r};
5295
0
    }
5296
0
}
5297
5298
// String literals:
5299
// CharT(&)[] -> string_buffer
5300
template <typename CharT,
5301
          std::size_t N,
5302
          std::enable_if_t<is_valid_char_type<CharT>>* = nullptr>
5303
auto impl(const CharT (&r)[N], priority_tag<3>) noexcept
5304
{
5305
    return std::basic_string_view<CharT>{r, N - 1};
5306
}
5307
5308
// FILE* -> file_buffer
5309
inline auto impl(std::FILE* file, priority_tag<3>)
5310
0
{
5311
0
    return make_file_scan_buffer(file);
5312
0
}
5313
5314
// contiguous + sized -> string_buffer
5315
template <typename Range,
5316
          std::enable_if_t<ranges::contiguous_range<Range> &&
5317
                           ranges::sized_range<Range>>* = nullptr>
5318
auto impl(const Range& r, priority_tag<2>)
5319
1.79M
{
5320
1.79M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5321
1.79M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
5322
    }
5323
    else {
5324
        return invalid_char_type{};
5325
    }
5326
1.79M
}
_ZN3scn2v46detail17_make_scan_buffer4implINS0_6ranges6detail9subrange_8subrangeIPKcS9_EETnPNSt3__19enable_ifIXaasr6rangesE16contiguous_rangeIT_Esr6rangesE11sized_rangeISD_EEvE4typeELPv0EEEDaRKSD_NS1_12priority_tagILm2EEE
Line
Count
Source
5319
223k
{
5320
223k
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5321
223k
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
5322
    }
5323
    else {
5324
        return invalid_char_type{};
5325
    }
5326
223k
}
_ZN3scn2v46detail17_make_scan_buffer4implINS0_6ranges6detail9subrange_8subrangeIPKwS9_EETnPNSt3__19enable_ifIXaasr6rangesE16contiguous_rangeIT_Esr6rangesE11sized_rangeISD_EEvE4typeELPv0EEEDaRKSD_NS1_12priority_tagILm2EEE
Line
Count
Source
5319
1.57M
{
5320
1.57M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5321
1.57M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
5322
    }
5323
    else {
5324
        return invalid_char_type{};
5325
    }
5326
1.57M
}
5327
5328
// !contiguous + random-access + iterator can be made into a ptr
5329
// for MSVC debug iterators
5330
//   -> string_buffer
5331
template <typename Range,
5332
          std::enable_if_t<!ranges::contiguous_range<Range> &&
5333
                           ranges::random_access_range<Range> &&
5334
                           can_make_address_from_iterator<
5335
                               ranges::iterator_t<Range>>>* = nullptr>
5336
auto impl(const Range& r, priority_tag<1>)
5337
{
5338
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5339
        return make_string_view_from_pointers(to_address(ranges::begin(r)),
5340
                                              to_address(ranges::end(r)));
5341
    }
5342
    else {
5343
        return invalid_char_type{};
5344
    }
5345
}
5346
5347
// forward -> forward_buffer<R>
5348
template <typename Range>
5349
auto impl(const Range& r, priority_tag<0>)
5350
922k
{
5351
    if constexpr (std::is_same_v<Range, file_marker>) {
5352
        return file_marker_found{};
5353
    }
5354
    else if constexpr (!ranges::forward_range<Range>) {
5355
        if constexpr (ranges::range<Range>) {
5356
            return insufficient_range{};
5357
        }
5358
        else {
5359
            return invalid_input_range{};
5360
        }
5361
    }
5362
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
5363
        return invalid_char_type{};
5364
    }
5365
922k
    else {
5366
922k
        return make_forward_scan_buffer(r);
5367
922k
    }
5368
922k
}
auto scn::v4::detail::_make_scan_buffer::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v4::detail::priority_tag<0ul>)
Line
Count
Source
5350
135k
{
5351
    if constexpr (std::is_same_v<Range, file_marker>) {
5352
        return file_marker_found{};
5353
    }
5354
    else if constexpr (!ranges::forward_range<Range>) {
5355
        if constexpr (ranges::range<Range>) {
5356
            return insufficient_range{};
5357
        }
5358
        else {
5359
            return invalid_input_range{};
5360
        }
5361
    }
5362
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
5363
        return invalid_char_type{};
5364
    }
5365
135k
    else {
5366
135k
        return make_forward_scan_buffer(r);
5367
135k
    }
5368
135k
}
auto scn::v4::detail::_make_scan_buffer::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v4::detail::priority_tag<0ul>)
Line
Count
Source
5350
787k
{
5351
    if constexpr (std::is_same_v<Range, file_marker>) {
5352
        return file_marker_found{};
5353
    }
5354
    else if constexpr (!ranges::forward_range<Range>) {
5355
        if constexpr (ranges::range<Range>) {
5356
            return insufficient_range{};
5357
        }
5358
        else {
5359
            return invalid_input_range{};
5360
        }
5361
    }
5362
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
5363
        return invalid_char_type{};
5364
    }
5365
787k
    else {
5366
787k
        return make_forward_scan_buffer(r);
5367
787k
    }
5368
787k
}
5369
}  // namespace _make_scan_buffer
5370
5371
template <typename Range>
5372
inline constexpr bool is_scannable_range =
5373
    !std::is_base_of_v<invalid_input_range,
5374
                       decltype(_make_scan_buffer::impl(
5375
                                    SCN_DECLVAL(const Range&)),
5376
                                priority_tag<4>{})>;
5377
5378
template <typename Range>
5379
auto make_scan_buffer(const Range& range)
5380
2.71M
{
5381
2.71M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5382
5383
2.71M
    static_assert(!std::is_same_v<T, invalid_char_type>,
5384
2.71M
                  "\n"
5385
2.71M
                  "Unsupported range type given as input to a scanning "
5386
2.71M
                  "function.\n"
5387
2.71M
                  "A range needs to have a character type (value type) "
5388
2.71M
                  "of either `char` or `wchar_t` to be scannable.\n"
5389
2.71M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5390
2.71M
                  "to be included.\n"
5391
2.71M
                  "See the scnlib documentation for more details.");
5392
2.71M
    static_assert(
5393
2.71M
        !std::is_same_v<T, custom_char_traits>,
5394
2.71M
        "\n"
5395
2.71M
        "Unsupported range type given as input to a scanning "
5396
2.71M
        "function.\n"
5397
2.71M
        "String types (std::basic_string, and std::basic_string_view) "
5398
2.71M
        "need to use std::char_traits. Strings with custom Traits are "
5399
2.71M
        "not supported.");
5400
2.71M
    static_assert(!std::is_same_v<T, file_marker_found>,
5401
2.71M
                  "\n"
5402
2.71M
                  "Unsupported range type given as input to a scanning "
5403
2.71M
                  "function.\n"
5404
2.71M
                  "file_marker_found cannot be used as an "
5405
2.71M
                  "source range type to scn::scan.\n"
5406
2.71M
                  "To read from stdin, use scn::input or scn::prompt, "
5407
2.71M
                  "and do not provide an explicit source range, "
5408
2.71M
                  "or use scn::scan with a FILE* directly.");
5409
2.71M
    static_assert(!std::is_same_v<T, insufficient_range>,
5410
2.71M
                  "\n"
5411
2.71M
                  "Unsupported range type given as input to a scanning "
5412
2.71M
                  "function.\n"
5413
2.71M
                  "In order to be scannable, a range needs to satisfy "
5414
2.71M
                  "`forward_range`. `input_range` is not sufficient.");
5415
2.71M
    static_assert(!std::is_same_v<T, invalid_input_range>,
5416
2.71M
                  "\n"
5417
2.71M
                  "Unsupported range type given as input to a scanning "
5418
2.71M
                  "function.\n"
5419
2.71M
                  "A range needs to model forward_range and have a valid "
5420
2.71M
                  "character type (char or wchar_t) to be scannable.\n"
5421
2.71M
                  "Examples of scannable ranges are std::string, "
5422
2.71M
                  "std::string_view, "
5423
2.71M
                  "std::vector<char>, and scn::istreambuf_view.\n"
5424
2.71M
                  "See the scnlib documentation for more details.");
5425
5426
2.71M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5427
2.71M
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&)
Line
Count
Source
5380
223k
{
5381
223k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5382
5383
223k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5384
223k
                  "\n"
5385
223k
                  "Unsupported range type given as input to a scanning "
5386
223k
                  "function.\n"
5387
223k
                  "A range needs to have a character type (value type) "
5388
223k
                  "of either `char` or `wchar_t` to be scannable.\n"
5389
223k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5390
223k
                  "to be included.\n"
5391
223k
                  "See the scnlib documentation for more details.");
5392
223k
    static_assert(
5393
223k
        !std::is_same_v<T, custom_char_traits>,
5394
223k
        "\n"
5395
223k
        "Unsupported range type given as input to a scanning "
5396
223k
        "function.\n"
5397
223k
        "String types (std::basic_string, and std::basic_string_view) "
5398
223k
        "need to use std::char_traits. Strings with custom Traits are "
5399
223k
        "not supported.");
5400
223k
    static_assert(!std::is_same_v<T, file_marker_found>,
5401
223k
                  "\n"
5402
223k
                  "Unsupported range type given as input to a scanning "
5403
223k
                  "function.\n"
5404
223k
                  "file_marker_found cannot be used as an "
5405
223k
                  "source range type to scn::scan.\n"
5406
223k
                  "To read from stdin, use scn::input or scn::prompt, "
5407
223k
                  "and do not provide an explicit source range, "
5408
223k
                  "or use scn::scan with a FILE* directly.");
5409
223k
    static_assert(!std::is_same_v<T, insufficient_range>,
5410
223k
                  "\n"
5411
223k
                  "Unsupported range type given as input to a scanning "
5412
223k
                  "function.\n"
5413
223k
                  "In order to be scannable, a range needs to satisfy "
5414
223k
                  "`forward_range`. `input_range` is not sufficient.");
5415
223k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5416
223k
                  "\n"
5417
223k
                  "Unsupported range type given as input to a scanning "
5418
223k
                  "function.\n"
5419
223k
                  "A range needs to model forward_range and have a valid "
5420
223k
                  "character type (char or wchar_t) to be scannable.\n"
5421
223k
                  "Examples of scannable ranges are std::string, "
5422
223k
                  "std::string_view, "
5423
223k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5424
223k
                  "See the scnlib documentation for more details.");
5425
5426
223k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5427
223k
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
5380
135k
{
5381
135k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5382
5383
135k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5384
135k
                  "\n"
5385
135k
                  "Unsupported range type given as input to a scanning "
5386
135k
                  "function.\n"
5387
135k
                  "A range needs to have a character type (value type) "
5388
135k
                  "of either `char` or `wchar_t` to be scannable.\n"
5389
135k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5390
135k
                  "to be included.\n"
5391
135k
                  "See the scnlib documentation for more details.");
5392
135k
    static_assert(
5393
135k
        !std::is_same_v<T, custom_char_traits>,
5394
135k
        "\n"
5395
135k
        "Unsupported range type given as input to a scanning "
5396
135k
        "function.\n"
5397
135k
        "String types (std::basic_string, and std::basic_string_view) "
5398
135k
        "need to use std::char_traits. Strings with custom Traits are "
5399
135k
        "not supported.");
5400
135k
    static_assert(!std::is_same_v<T, file_marker_found>,
5401
135k
                  "\n"
5402
135k
                  "Unsupported range type given as input to a scanning "
5403
135k
                  "function.\n"
5404
135k
                  "file_marker_found cannot be used as an "
5405
135k
                  "source range type to scn::scan.\n"
5406
135k
                  "To read from stdin, use scn::input or scn::prompt, "
5407
135k
                  "and do not provide an explicit source range, "
5408
135k
                  "or use scn::scan with a FILE* directly.");
5409
135k
    static_assert(!std::is_same_v<T, insufficient_range>,
5410
135k
                  "\n"
5411
135k
                  "Unsupported range type given as input to a scanning "
5412
135k
                  "function.\n"
5413
135k
                  "In order to be scannable, a range needs to satisfy "
5414
135k
                  "`forward_range`. `input_range` is not sufficient.");
5415
135k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5416
135k
                  "\n"
5417
135k
                  "Unsupported range type given as input to a scanning "
5418
135k
                  "function.\n"
5419
135k
                  "A range needs to model forward_range and have a valid "
5420
135k
                  "character type (char or wchar_t) to be scannable.\n"
5421
135k
                  "Examples of scannable ranges are std::string, "
5422
135k
                  "std::string_view, "
5423
135k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5424
135k
                  "See the scnlib documentation for more details.");
5425
5426
135k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5427
135k
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&)
Line
Count
Source
5380
1.57M
{
5381
1.57M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5382
5383
1.57M
    static_assert(!std::is_same_v<T, invalid_char_type>,
5384
1.57M
                  "\n"
5385
1.57M
                  "Unsupported range type given as input to a scanning "
5386
1.57M
                  "function.\n"
5387
1.57M
                  "A range needs to have a character type (value type) "
5388
1.57M
                  "of either `char` or `wchar_t` to be scannable.\n"
5389
1.57M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5390
1.57M
                  "to be included.\n"
5391
1.57M
                  "See the scnlib documentation for more details.");
5392
1.57M
    static_assert(
5393
1.57M
        !std::is_same_v<T, custom_char_traits>,
5394
1.57M
        "\n"
5395
1.57M
        "Unsupported range type given as input to a scanning "
5396
1.57M
        "function.\n"
5397
1.57M
        "String types (std::basic_string, and std::basic_string_view) "
5398
1.57M
        "need to use std::char_traits. Strings with custom Traits are "
5399
1.57M
        "not supported.");
5400
1.57M
    static_assert(!std::is_same_v<T, file_marker_found>,
5401
1.57M
                  "\n"
5402
1.57M
                  "Unsupported range type given as input to a scanning "
5403
1.57M
                  "function.\n"
5404
1.57M
                  "file_marker_found cannot be used as an "
5405
1.57M
                  "source range type to scn::scan.\n"
5406
1.57M
                  "To read from stdin, use scn::input or scn::prompt, "
5407
1.57M
                  "and do not provide an explicit source range, "
5408
1.57M
                  "or use scn::scan with a FILE* directly.");
5409
1.57M
    static_assert(!std::is_same_v<T, insufficient_range>,
5410
1.57M
                  "\n"
5411
1.57M
                  "Unsupported range type given as input to a scanning "
5412
1.57M
                  "function.\n"
5413
1.57M
                  "In order to be scannable, a range needs to satisfy "
5414
1.57M
                  "`forward_range`. `input_range` is not sufficient.");
5415
1.57M
    static_assert(!std::is_same_v<T, invalid_input_range>,
5416
1.57M
                  "\n"
5417
1.57M
                  "Unsupported range type given as input to a scanning "
5418
1.57M
                  "function.\n"
5419
1.57M
                  "A range needs to model forward_range and have a valid "
5420
1.57M
                  "character type (char or wchar_t) to be scannable.\n"
5421
1.57M
                  "Examples of scannable ranges are std::string, "
5422
1.57M
                  "std::string_view, "
5423
1.57M
                  "std::vector<char>, and scn::istreambuf_view.\n"
5424
1.57M
                  "See the scnlib documentation for more details.");
5425
5426
1.57M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5427
1.57M
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
5380
787k
{
5381
787k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5382
5383
787k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5384
787k
                  "\n"
5385
787k
                  "Unsupported range type given as input to a scanning "
5386
787k
                  "function.\n"
5387
787k
                  "A range needs to have a character type (value type) "
5388
787k
                  "of either `char` or `wchar_t` to be scannable.\n"
5389
787k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5390
787k
                  "to be included.\n"
5391
787k
                  "See the scnlib documentation for more details.");
5392
787k
    static_assert(
5393
787k
        !std::is_same_v<T, custom_char_traits>,
5394
787k
        "\n"
5395
787k
        "Unsupported range type given as input to a scanning "
5396
787k
        "function.\n"
5397
787k
        "String types (std::basic_string, and std::basic_string_view) "
5398
787k
        "need to use std::char_traits. Strings with custom Traits are "
5399
787k
        "not supported.");
5400
787k
    static_assert(!std::is_same_v<T, file_marker_found>,
5401
787k
                  "\n"
5402
787k
                  "Unsupported range type given as input to a scanning "
5403
787k
                  "function.\n"
5404
787k
                  "file_marker_found cannot be used as an "
5405
787k
                  "source range type to scn::scan.\n"
5406
787k
                  "To read from stdin, use scn::input or scn::prompt, "
5407
787k
                  "and do not provide an explicit source range, "
5408
787k
                  "or use scn::scan with a FILE* directly.");
5409
787k
    static_assert(!std::is_same_v<T, insufficient_range>,
5410
787k
                  "\n"
5411
787k
                  "Unsupported range type given as input to a scanning "
5412
787k
                  "function.\n"
5413
787k
                  "In order to be scannable, a range needs to satisfy "
5414
787k
                  "`forward_range`. `input_range` is not sufficient.");
5415
787k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5416
787k
                  "\n"
5417
787k
                  "Unsupported range type given as input to a scanning "
5418
787k
                  "function.\n"
5419
787k
                  "A range needs to model forward_range and have a valid "
5420
787k
                  "character type (char or wchar_t) to be scannable.\n"
5421
787k
                  "Examples of scannable ranges are std::string, "
5422
787k
                  "std::string_view, "
5423
787k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5424
787k
                  "See the scnlib documentation for more details.");
5425
5426
787k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5427
787k
}
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
5428
5429
template <
5430
    typename Range,
5431
    std::enable_if_t<
5432
        !std::is_reference_v<Range> && !ranges::borrowed_range<Range> &&
5433
        !std::is_same_v<std::FILE*, std::remove_reference_t<Range>>>* = nullptr>
5434
auto make_scan_buffer(Range&&) = delete;
5435
}  // namespace detail
5436
5437
/////////////////////////////////////////////////////////////////
5438
// Argument type erasure
5439
/////////////////////////////////////////////////////////////////
5440
5441
namespace detail {
5442
enum class arg_type : unsigned char {
5443
    none_type,
5444
    schar_type,
5445
    short_type,
5446
    int_type,
5447
    long_type,
5448
    llong_type,
5449
    uchar_type,
5450
    ushort_type,
5451
    uint_type,
5452
    ulong_type,
5453
    ullong_type,
5454
    bool_type,
5455
    narrow_character_type,
5456
    wide_character_type,
5457
    code_point_type,
5458
    pointer_type,
5459
    float_type,
5460
    double_type,
5461
    ldouble_type,
5462
    narrow_string_view_type,
5463
    wide_string_view_type,
5464
    narrow_string_type,
5465
    wide_string_type,
5466
    narrow_regex_matches_type,
5467
    wide_regex_matches_type,
5468
    custom_type,
5469
    last_type = custom_type
5470
};
5471
5472
template <typename>
5473
inline constexpr bool is_type_disabled = SCN_DISABLE_TYPE_CUSTOM;
5474
5475
template <typename T, typename CharT>
5476
struct arg_type_constant
5477
    : std::integral_constant<arg_type, arg_type::custom_type> {
5478
    using type = T;
5479
};
5480
5481
#define SCN_TYPE_CONSTANT(Type, C, Disabled)              \
5482
    template <typename CharT>                             \
5483
    struct arg_type_constant<Type, CharT>                 \
5484
        : std::integral_constant<arg_type, arg_type::C> { \
5485
        using type = Type;                                \
5486
    };                                                    \
5487
    template <>                                           \
5488
    inline constexpr bool is_type_disabled<Type> = Disabled
5489
5490
SCN_TYPE_CONSTANT(signed char, schar_type, SCN_DISABLE_TYPE_SCHAR);
5491
SCN_TYPE_CONSTANT(short, short_type, SCN_DISABLE_TYPE_SHORT);
5492
SCN_TYPE_CONSTANT(int, int_type, SCN_DISABLE_TYPE_INT);
5493
SCN_TYPE_CONSTANT(long, long_type, SCN_DISABLE_TYPE_LONG);
5494
SCN_TYPE_CONSTANT(long long, llong_type, SCN_DISABLE_TYPE_LONG_LONG);
5495
SCN_TYPE_CONSTANT(unsigned char, uchar_type, SCN_DISABLE_TYPE_UCHAR);
5496
SCN_TYPE_CONSTANT(unsigned short, ushort_type, SCN_DISABLE_TYPE_USHORT);
5497
SCN_TYPE_CONSTANT(unsigned int, uint_type, SCN_DISABLE_TYPE_UINT);
5498
SCN_TYPE_CONSTANT(unsigned long, ulong_type, SCN_DISABLE_TYPE_ULONG);
5499
SCN_TYPE_CONSTANT(unsigned long long, ullong_type, SCN_DISABLE_TYPE_ULONG_LONG);
5500
SCN_TYPE_CONSTANT(bool, bool_type, SCN_DISABLE_TYPE_BOOL);
5501
SCN_TYPE_CONSTANT(char, narrow_character_type, SCN_DISABLE_TYPE_CHAR);
5502
SCN_TYPE_CONSTANT(wchar_t, wide_character_type, SCN_DISABLE_TYPE_CHAR);
5503
SCN_TYPE_CONSTANT(char32_t, code_point_type, SCN_DISABLE_TYPE_CHAR32);
5504
SCN_TYPE_CONSTANT(void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
5505
SCN_TYPE_CONSTANT(const void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
5506
SCN_TYPE_CONSTANT(float, float_type, SCN_DISABLE_TYPE_FLOAT);
5507
SCN_TYPE_CONSTANT(double, double_type, SCN_DISABLE_TYPE_DOUBLE);
5508
SCN_TYPE_CONSTANT(long double, ldouble_type, SCN_DISABLE_TYPE_LONG_DOUBLE);
5509
SCN_TYPE_CONSTANT(std::string_view,
5510
                  narrow_string_view_type,
5511
                  SCN_DISABLE_TYPE_STRING_VIEW);
5512
SCN_TYPE_CONSTANT(std::wstring_view,
5513
                  wide_string_view_type,
5514
                  SCN_DISABLE_TYPE_STRING_VIEW);
5515
SCN_TYPE_CONSTANT(std::string, narrow_string_type, SCN_DISABLE_TYPE_STRING);
5516
SCN_TYPE_CONSTANT(std::wstring, wide_string_type, SCN_DISABLE_TYPE_STRING);
5517
SCN_TYPE_CONSTANT(regex_matches, narrow_regex_matches_type, SCN_DISABLE_REGEX);
5518
SCN_TYPE_CONSTANT(wregex_matches, wide_regex_matches_type, SCN_DISABLE_REGEX);
5519
5520
#undef SCN_TYPE_CONSTANT
5521
5522
struct custom_value_type {
5523
    void* value;
5524
    auto (*scan)(void* arg, void* pctx, void* ctx) -> scan_expected<void>;
5525
};
5526
5527
struct unscannable {};
5528
struct unscannable_char : unscannable {};
5529
struct unscannable_const : unscannable {};
5530
struct unscannable_disabled : unscannable {
5531
    unscannable_disabled() = default;
5532
5533
    template <typename T>
5534
    constexpr unscannable_disabled(T&&)
5535
    {
5536
    }
5537
};
5538
5539
struct needs_context_tag {};
5540
5541
template <typename Context>
5542
struct context_tag {
5543
    using type = Context;
5544
};
5545
5546
template <typename T, typename Context>
5547
struct custom_wrapper {
5548
    using context_type = Context;
5549
    T& val;
5550
};
5551
5552
template <typename T, typename Scanner, typename ParseCtx>
5553
scan_expected<void> parse_custom_arg(T& arg, Scanner& s, ParseCtx& pctx)
5554
{
5555
#if SCN_HAS_EXCEPTIONS
5556
    auto fmt_it = pctx.begin();
5557
    try {
5558
        fmt_it = s.parse(pctx);
5559
    }
5560
    catch (const detail::scan_format_string_error_base& ex) {
5561
        // scan_error takes a const char*.
5562
        // scan_format_string_error (or, actually, std::runtime_error)
5563
        // stores a reference-counted string,
5564
        // that will go out of scope here.
5565
        // We need to provide a const char* that will stay in scope.
5566
        // If scan_format_string_error was thrown with a string literal,
5567
        // use that, otherwise refer to a thread_local std::string
5568
        if (const char* m = get_internal_literal_msg(ex)) {
5569
            return unexpected_scan_error(scan_error::invalid_format_string, m);
5570
        }
5571
        thread_local std::string err_msg{};
5572
        err_msg = ex.what();
5573
        return unexpected_scan_error(scan_error::invalid_format_string,
5574
                                     err_msg.c_str());
5575
    }
5576
#else
5577
    auto fmt_it = s.parse(pctx_ref);
5578
#endif
5579
    if (auto e = pctx.get_error(); SCN_UNLIKELY(!e)) {
5580
        return e;
5581
    }
5582
    pctx.advance_to(fmt_it);
5583
    return {};
5584
}
5585
5586
class arg_value {
5587
public:
5588
    // trivial default initialization in constexpr
5589
#if defined(__cpp_constexpr) && __cpp_constexpr >= 201907L && \
5590
    SCN_STD > SCN_STD_20
5591
    constexpr
5592
#endif
5593
2.71M
    arg_value() = default;
5594
5595
    template <typename T>
5596
2.71M
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5597
2.71M
    {
5598
2.71M
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5596
246k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5597
246k
    {
5598
246k
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5596
111k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5597
111k
    {
5598
111k
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5596
1.57M
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5597
1.57M
    {
5598
1.57M
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5596
787k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5597
787k
    {
5598
787k
    }
Unexecuted instantiation: scn::v4::detail::arg_value::arg_value<double>(double&)
5599
5600
    template <typename T, typename Context>
5601
    explicit constexpr arg_value(custom_wrapper<T, Context> val)
5602
        : custom_value{static_cast<void*>(&val.val),
5603
                       scan_custom_arg<T, Context>}
5604
    {
5605
    }
5606
5607
    arg_value(unscannable);
5608
    arg_value(unscannable_char);
5609
    arg_value(unscannable_const);
5610
    arg_value(unscannable_disabled);
5611
5612
    union {
5613
        void* ref_value{nullptr};
5614
        custom_value_type custom_value;
5615
    };
5616
5617
private:
5618
    template <typename T, typename Context>
5619
    static scan_expected<void> scan_custom_arg(void* arg, void* pctx, void* ctx)
5620
    {
5621
        static_assert(!is_type_disabled<T>,
5622
                      "Scanning of custom types is disabled by "
5623
                      "SCN_DISABLE_TYPE_CUSTOM");
5624
        SCN_EXPECT(arg && pctx && ctx);
5625
5626
        using context_type = Context;
5627
        using parse_context_type = typename context_type::parse_context_type;
5628
        using scanner_type = typename context_type::template scanner_type<T>;
5629
5630
        auto s = scanner_type{};
5631
5632
        auto& arg_ref = *static_cast<T*>(arg);
5633
        auto& pctx_ref = *static_cast<parse_context_type*>(pctx);
5634
        auto& ctx_ref = *static_cast<context_type*>(ctx);
5635
5636
        SCN_TRY_DISCARD(parse_custom_arg(arg_ref, s, pctx_ref));
5637
        SCN_TRY(it, s.scan(arg_ref, ctx_ref));
5638
        ctx_ref.advance_to(SCN_MOVE(it));
5639
5640
        return {};
5641
    }
5642
};
5643
5644
template <typename CharT>
5645
struct arg_mapper {
5646
    using char_type = CharT;
5647
    using other_char_type =
5648
        std::conditional_t<std::is_same_v<char_type, char>, wchar_t, char>;
5649
5650
#define SCN_ARG_MAPPER(T)                                                    \
5651
    static auto map(T& val)                                                  \
5652
        -> std::conditional_t<is_type_disabled<T>, unscannable_disabled, T&> \
5653
2.71M
    {                                                                        \
5654
2.71M
        return val;                                                          \
5655
2.71M
    }
scn::v4::detail::arg_mapper<char>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5653
246k
    {                                                                        \
5654
246k
        return val;                                                          \
5655
246k
    }
scn::v4::detail::arg_mapper<char>::map(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5653
111k
    {                                                                        \
5654
111k
        return val;                                                          \
5655
111k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5653
1.57M
    {                                                                        \
5654
1.57M
        return val;                                                          \
5655
1.57M
    }
scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5653
787k
    {                                                                        \
5654
787k
        return val;                                                          \
5655
787k
    }
Unexecuted instantiation: scn::v4::detail::arg_mapper<char>::map(double&)
Unexecuted instantiation: scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
5656
5657
    SCN_ARG_MAPPER(signed char)
5658
    SCN_ARG_MAPPER(short)
5659
    SCN_ARG_MAPPER(int)
5660
    SCN_ARG_MAPPER(long)
5661
    SCN_ARG_MAPPER(long long)
5662
    SCN_ARG_MAPPER(unsigned char)
5663
    SCN_ARG_MAPPER(unsigned short)
5664
    SCN_ARG_MAPPER(unsigned)
5665
    SCN_ARG_MAPPER(unsigned long)
5666
    SCN_ARG_MAPPER(unsigned long long)
5667
    SCN_ARG_MAPPER(wchar_t)
5668
    SCN_ARG_MAPPER(char32_t)
5669
    SCN_ARG_MAPPER(bool)
5670
    SCN_ARG_MAPPER(void*)
5671
    SCN_ARG_MAPPER(const void*)
5672
    SCN_ARG_MAPPER(float)
5673
    SCN_ARG_MAPPER(double)
5674
    SCN_ARG_MAPPER(long double)
5675
5676
    SCN_ARG_MAPPER(std::basic_string_view<char_type>)
5677
    SCN_ARG_MAPPER(std::string)
5678
    SCN_ARG_MAPPER(std::wstring)
5679
5680
#undef SCN_ARG_MAPPER
5681
5682
    static decltype(auto) map(char& val)
5683
    {
5684
        if constexpr (std::is_same_v<char_type, char> &&
5685
                      !is_type_disabled<char_type>) {
5686
            return val;
5687
        }
5688
        else if constexpr (is_type_disabled<char_type>) {
5689
            return unscannable_disabled{val};
5690
        }
5691
        else {
5692
            SCN_UNUSED(val);
5693
            return unscannable_char{};
5694
        }
5695
    }
5696
5697
    static decltype(auto) map(basic_regex_matches<char_type>& val)
5698
    {
5699
        if constexpr (is_type_disabled<char_type>) {
5700
            return unscannable_disabled{val};
5701
        }
5702
        else {
5703
            return val;
5704
        }
5705
    }
5706
5707
    static unscannable_char map(std::basic_string_view<other_char_type>&)
5708
    {
5709
        return {};
5710
    }
5711
    static unscannable_char map(basic_regex_matches<other_char_type>&)
5712
    {
5713
        return {};
5714
    }
5715
5716
    template <typename T,
5717
              std::void_t<decltype(scanner<T, char_type>{})>* = nullptr>
5718
    static needs_context_tag map(T&)
5719
    {
5720
        return {};
5721
    }
5722
5723
    template <typename T,
5724
              typename Context,
5725
              std::void_t<decltype(scanner<T, char_type>{})>* = nullptr>
5726
    static custom_wrapper<T, Context> map(T& val, context_tag<Context>)
5727
    {
5728
        return {val};
5729
    }
5730
5731
    static unscannable map(...)
5732
    {
5733
        return {};
5734
    }
5735
};
5736
5737
template <typename T, typename CharT>
5738
using mapped_type_constant = arg_type_constant<
5739
    std::remove_reference_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>,
5740
    CharT>;
5741
5742
template <typename T, typename CharT>
5743
using is_scannable = std::integral_constant<
5744
    bool,
5745
    !std::is_base_of_v<
5746
        unscannable,
5747
        remove_cvref_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>>>;
5748
5749
constexpr std::size_t packed_arg_bits = 5;
5750
static_assert((1 << packed_arg_bits) >= static_cast<int>(arg_type::last_type));
5751
constexpr std::size_t bits_in_sz = sizeof(std::size_t) * 8;
5752
constexpr std::size_t max_packed_args = (bits_in_sz - 2) / packed_arg_bits - 1;
5753
constexpr std::size_t is_unpacked_bit = std::size_t{1} << (bits_in_sz - 1);
5754
constexpr std::size_t has_custom_types_bit = std::size_t{1} << (bits_in_sz - 2);
5755
5756
template <typename>
5757
constexpr size_t encode_types_impl()
5758
0
{
5759
0
    return 0;
5760
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t>()
5761
template <typename CharT, typename T, typename... Others>
5762
constexpr size_t encode_types_impl()
5763
0
{
5764
0
    return static_cast<unsigned>(mapped_type_constant<T, CharT>::value) |
5765
0
           (encode_types_impl<CharT, Others...>() << packed_arg_bits);
5766
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
5767
5768
template <typename CharT, typename... Ts>
5769
constexpr size_t encode_types()
5770
0
{
5771
0
    if constexpr (sizeof...(Ts) < (1 << packed_arg_bits)) {
5772
0
        return sizeof...(Ts) |
5773
0
               (encode_types_impl<CharT, Ts...>() << packed_arg_bits);
5774
0
    }
5775
0
    else {
5776
0
        SCN_EXPECT(false);
5777
0
        SCN_UNREACHABLE;
5778
0
    }
5779
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
5780
5781
template <typename T, typename Arg>
5782
constexpr auto make_value_impl(Arg&& arg)
5783
2.71M
{
5784
2.71M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5785
2.71M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5786
5787
2.71M
    constexpr bool scannable_char =
5788
2.71M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5789
2.71M
    static_assert(scannable_char,
5790
2.71M
                  "Cannot scan an argument of an unsupported character "
5791
2.71M
                  "type (i.e. char from a wchar_t source)");
5792
5793
2.71M
    constexpr bool scannable_const =
5794
2.71M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5795
2.71M
    static_assert(scannable_const, "Cannot scan a const argument");
5796
5797
2.71M
    constexpr bool scannable_disabled =
5798
2.71M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5799
2.71M
    static_assert(scannable_disabled,
5800
2.71M
                  "Cannot scan an argument that has been disabled by "
5801
2.71M
                  "flag (SCN_DISABLE_TYPE_*)");
5802
5803
2.71M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5804
2.71M
    static_assert(
5805
2.71M
        scannable,
5806
2.71M
        "Cannot scan an argument. To make a type T scannable, provide "
5807
2.71M
        "a scn::scanner<T, CharT> specialization.");
5808
5809
2.71M
    return arg_value{arg};
5810
2.71M
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5783
246k
{
5784
246k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5785
246k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5786
5787
246k
    constexpr bool scannable_char =
5788
246k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5789
246k
    static_assert(scannable_char,
5790
246k
                  "Cannot scan an argument of an unsupported character "
5791
246k
                  "type (i.e. char from a wchar_t source)");
5792
5793
246k
    constexpr bool scannable_const =
5794
246k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5795
246k
    static_assert(scannable_const, "Cannot scan a const argument");
5796
5797
246k
    constexpr bool scannable_disabled =
5798
246k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5799
246k
    static_assert(scannable_disabled,
5800
246k
                  "Cannot scan an argument that has been disabled by "
5801
246k
                  "flag (SCN_DISABLE_TYPE_*)");
5802
5803
246k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5804
246k
    static_assert(
5805
246k
        scannable,
5806
246k
        "Cannot scan an argument. To make a type T scannable, provide "
5807
246k
        "a scn::scanner<T, CharT> specialization.");
5808
5809
246k
    return arg_value{arg};
5810
246k
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5783
111k
{
5784
111k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5785
111k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5786
5787
111k
    constexpr bool scannable_char =
5788
111k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5789
111k
    static_assert(scannable_char,
5790
111k
                  "Cannot scan an argument of an unsupported character "
5791
111k
                  "type (i.e. char from a wchar_t source)");
5792
5793
111k
    constexpr bool scannable_const =
5794
111k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5795
111k
    static_assert(scannable_const, "Cannot scan a const argument");
5796
5797
111k
    constexpr bool scannable_disabled =
5798
111k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5799
111k
    static_assert(scannable_disabled,
5800
111k
                  "Cannot scan an argument that has been disabled by "
5801
111k
                  "flag (SCN_DISABLE_TYPE_*)");
5802
5803
111k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5804
111k
    static_assert(
5805
111k
        scannable,
5806
111k
        "Cannot scan an argument. To make a type T scannable, provide "
5807
111k
        "a scn::scanner<T, CharT> specialization.");
5808
5809
111k
    return arg_value{arg};
5810
111k
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5783
1.57M
{
5784
1.57M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5785
1.57M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5786
5787
1.57M
    constexpr bool scannable_char =
5788
1.57M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5789
1.57M
    static_assert(scannable_char,
5790
1.57M
                  "Cannot scan an argument of an unsupported character "
5791
1.57M
                  "type (i.e. char from a wchar_t source)");
5792
5793
1.57M
    constexpr bool scannable_const =
5794
1.57M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5795
1.57M
    static_assert(scannable_const, "Cannot scan a const argument");
5796
5797
1.57M
    constexpr bool scannable_disabled =
5798
1.57M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5799
1.57M
    static_assert(scannable_disabled,
5800
1.57M
                  "Cannot scan an argument that has been disabled by "
5801
1.57M
                  "flag (SCN_DISABLE_TYPE_*)");
5802
5803
1.57M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5804
1.57M
    static_assert(
5805
1.57M
        scannable,
5806
1.57M
        "Cannot scan an argument. To make a type T scannable, provide "
5807
1.57M
        "a scn::scanner<T, CharT> specialization.");
5808
5809
1.57M
    return arg_value{arg};
5810
1.57M
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5783
787k
{
5784
787k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5785
787k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5786
5787
787k
    constexpr bool scannable_char =
5788
787k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5789
787k
    static_assert(scannable_char,
5790
787k
                  "Cannot scan an argument of an unsupported character "
5791
787k
                  "type (i.e. char from a wchar_t source)");
5792
5793
787k
    constexpr bool scannable_const =
5794
787k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5795
787k
    static_assert(scannable_const, "Cannot scan a const argument");
5796
5797
787k
    constexpr bool scannable_disabled =
5798
787k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5799
787k
    static_assert(scannable_disabled,
5800
787k
                  "Cannot scan an argument that has been disabled by "
5801
787k
                  "flag (SCN_DISABLE_TYPE_*)");
5802
5803
787k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5804
787k
    static_assert(
5805
787k
        scannable,
5806
787k
        "Cannot scan an argument. To make a type T scannable, provide "
5807
787k
        "a scn::scanner<T, CharT> specialization.");
5808
5809
787k
    return arg_value{arg};
5810
787k
}
Unexecuted instantiation: auto scn::v4::detail::make_value_impl<double, double&>(double&)
5811
5812
template <typename Context, typename T>
5813
constexpr auto make_value(T& value)
5814
2.71M
{
5815
2.71M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5816
5817
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5818
2.71M
                                  needs_context_tag>) {
5819
2.71M
        return make_value_impl<T>(SCN_FWD(arg));
5820
    }
5821
    else {
5822
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5823
            value, context_tag<Context>{}));
5824
    }
5825
2.71M
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5814
246k
{
5815
246k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5816
5817
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5818
246k
                                  needs_context_tag>) {
5819
246k
        return make_value_impl<T>(SCN_FWD(arg));
5820
    }
5821
    else {
5822
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5823
            value, context_tag<Context>{}));
5824
    }
5825
246k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5814
111k
{
5815
111k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5816
5817
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5818
111k
                                  needs_context_tag>) {
5819
111k
        return make_value_impl<T>(SCN_FWD(arg));
5820
    }
5821
    else {
5822
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5823
            value, context_tag<Context>{}));
5824
    }
5825
111k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5814
1.57M
{
5815
1.57M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5816
5817
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5818
1.57M
                                  needs_context_tag>) {
5819
1.57M
        return make_value_impl<T>(SCN_FWD(arg));
5820
    }
5821
    else {
5822
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5823
            value, context_tag<Context>{}));
5824
    }
5825
1.57M
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5814
787k
{
5815
787k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5816
5817
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5818
787k
                                  needs_context_tag>) {
5819
787k
        return make_value_impl<T>(SCN_FWD(arg));
5820
    }
5821
    else {
5822
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5823
            value, context_tag<Context>{}));
5824
    }
5825
787k
}
Unexecuted instantiation: auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>(double&)
Unexecuted instantiation: auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
5826
5827
template <typename... Args>
5828
constexpr bool check_scan_arg_types()
5829
2.71M
{
5830
2.71M
    constexpr bool default_constructible_constraint =
5831
2.71M
        std::conjunction_v<std::is_default_constructible<Args>...>;
5832
2.71M
    static_assert(default_constructible_constraint,
5833
2.71M
                  "Scan argument types must be default constructible");
5834
5835
2.71M
    constexpr bool destructible_constraint =
5836
2.71M
        std::conjunction_v<std::is_destructible<Args>...>;
5837
2.71M
    static_assert(destructible_constraint,
5838
2.71M
                  "Scan argument types must be Destructible");
5839
5840
2.71M
    constexpr bool non_reference_constraint =
5841
2.71M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5842
2.71M
    static_assert(non_reference_constraint,
5843
2.71M
                  "Scan argument types must not be references");
5844
5845
2.71M
    constexpr bool movable_constraint =
5846
2.71M
        std::conjunction_v<std::is_move_constructible<Args>...>;
5847
2.71M
    static_assert(movable_constraint,
5848
2.71M
                  "Scan argument types must be move constructible");
5849
5850
2.71M
    return default_constructible_constraint && destructible_constraint &&
5851
2.71M
           non_reference_constraint && movable_constraint;
5852
2.71M
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5829
246k
{
5830
246k
    constexpr bool default_constructible_constraint =
5831
246k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5832
246k
    static_assert(default_constructible_constraint,
5833
246k
                  "Scan argument types must be default constructible");
5834
5835
246k
    constexpr bool destructible_constraint =
5836
246k
        std::conjunction_v<std::is_destructible<Args>...>;
5837
246k
    static_assert(destructible_constraint,
5838
246k
                  "Scan argument types must be Destructible");
5839
5840
246k
    constexpr bool non_reference_constraint =
5841
246k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5842
246k
    static_assert(non_reference_constraint,
5843
246k
                  "Scan argument types must not be references");
5844
5845
246k
    constexpr bool movable_constraint =
5846
246k
        std::conjunction_v<std::is_move_constructible<Args>...>;
5847
246k
    static_assert(movable_constraint,
5848
246k
                  "Scan argument types must be move constructible");
5849
5850
246k
    return default_constructible_constraint && destructible_constraint &&
5851
246k
           non_reference_constraint && movable_constraint;
5852
246k
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
5829
111k
{
5830
111k
    constexpr bool default_constructible_constraint =
5831
111k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5832
111k
    static_assert(default_constructible_constraint,
5833
111k
                  "Scan argument types must be default constructible");
5834
5835
111k
    constexpr bool destructible_constraint =
5836
111k
        std::conjunction_v<std::is_destructible<Args>...>;
5837
111k
    static_assert(destructible_constraint,
5838
111k
                  "Scan argument types must be Destructible");
5839
5840
111k
    constexpr bool non_reference_constraint =
5841
111k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5842
111k
    static_assert(non_reference_constraint,
5843
111k
                  "Scan argument types must not be references");
5844
5845
111k
    constexpr bool movable_constraint =
5846
111k
        std::conjunction_v<std::is_move_constructible<Args>...>;
5847
111k
    static_assert(movable_constraint,
5848
111k
                  "Scan argument types must be move constructible");
5849
5850
111k
    return default_constructible_constraint && destructible_constraint &&
5851
111k
           non_reference_constraint && movable_constraint;
5852
111k
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5829
1.57M
{
5830
1.57M
    constexpr bool default_constructible_constraint =
5831
1.57M
        std::conjunction_v<std::is_default_constructible<Args>...>;
5832
1.57M
    static_assert(default_constructible_constraint,
5833
1.57M
                  "Scan argument types must be default constructible");
5834
5835
1.57M
    constexpr bool destructible_constraint =
5836
1.57M
        std::conjunction_v<std::is_destructible<Args>...>;
5837
1.57M
    static_assert(destructible_constraint,
5838
1.57M
                  "Scan argument types must be Destructible");
5839
5840
1.57M
    constexpr bool non_reference_constraint =
5841
1.57M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5842
1.57M
    static_assert(non_reference_constraint,
5843
1.57M
                  "Scan argument types must not be references");
5844
5845
1.57M
    constexpr bool movable_constraint =
5846
1.57M
        std::conjunction_v<std::is_move_constructible<Args>...>;
5847
1.57M
    static_assert(movable_constraint,
5848
1.57M
                  "Scan argument types must be move constructible");
5849
5850
1.57M
    return default_constructible_constraint && destructible_constraint &&
5851
1.57M
           non_reference_constraint && movable_constraint;
5852
1.57M
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
5829
787k
{
5830
787k
    constexpr bool default_constructible_constraint =
5831
787k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5832
787k
    static_assert(default_constructible_constraint,
5833
787k
                  "Scan argument types must be default constructible");
5834
5835
787k
    constexpr bool destructible_constraint =
5836
787k
        std::conjunction_v<std::is_destructible<Args>...>;
5837
787k
    static_assert(destructible_constraint,
5838
787k
                  "Scan argument types must be Destructible");
5839
5840
787k
    constexpr bool non_reference_constraint =
5841
787k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5842
787k
    static_assert(non_reference_constraint,
5843
787k
                  "Scan argument types must not be references");
5844
5845
787k
    constexpr bool movable_constraint =
5846
787k
        std::conjunction_v<std::is_move_constructible<Args>...>;
5847
787k
    static_assert(movable_constraint,
5848
787k
                  "Scan argument types must be move constructible");
5849
5850
787k
    return default_constructible_constraint && destructible_constraint &&
5851
787k
           non_reference_constraint && movable_constraint;
5852
787k
}
Unexecuted instantiation: bool scn::v4::detail::check_scan_arg_types<double>()
5853
5854
enum class scan_arg_store_kind {
5855
    // only built-in types (no custom types), packed
5856
    builtin,
5857
5858
    packed,
5859
    unpacked
5860
};
5861
5862
template <typename Context, typename T>
5863
constexpr basic_scan_arg<Context> make_arg(T& value)
5864
530k
{
5865
530k
    check_scan_arg_types<T>();
5866
5867
530k
    basic_scan_arg<Context> arg;
5868
530k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5869
530k
    arg.m_value = make_value<Context>(value);
5870
530k
    return arg;
5871
530k
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5864
46.1k
{
5865
46.1k
    check_scan_arg_types<T>();
5866
5867
46.1k
    basic_scan_arg<Context> arg;
5868
46.1k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5869
46.1k
    arg.m_value = make_value<Context>(value);
5870
46.1k
    return arg;
5871
46.1k
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5864
20.7k
{
5865
20.7k
    check_scan_arg_types<T>();
5866
5867
20.7k
    basic_scan_arg<Context> arg;
5868
20.7k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5869
20.7k
    arg.m_value = make_value<Context>(value);
5870
20.7k
    return arg;
5871
20.7k
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5864
308k
{
5865
308k
    check_scan_arg_types<T>();
5866
5867
308k
    basic_scan_arg<Context> arg;
5868
308k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5869
308k
    arg.m_value = make_value<Context>(value);
5870
308k
    return arg;
5871
308k
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5864
154k
{
5865
154k
    check_scan_arg_types<T>();
5866
5867
154k
    basic_scan_arg<Context> arg;
5868
154k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5869
154k
    arg.m_value = make_value<Context>(value);
5870
154k
    return arg;
5871
154k
}
5872
5873
template <scan_arg_store_kind Kind,
5874
          typename Context,
5875
          arg_type,
5876
          typename T,
5877
          typename = std::enable_if_t<Kind == scan_arg_store_kind::builtin>>
5878
constexpr void* make_arg(T& value)
5879
2.18M
{
5880
2.18M
    return make_value<Context>(value).ref_value;
5881
2.18M
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5879
200k
{
5880
200k
    return make_value<Context>(value).ref_value;
5881
200k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)19, std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5879
90.7k
{
5880
90.7k
    return make_value<Context>(value).ref_value;
5881
90.7k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)22, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5879
1.26M
{
5880
1.26M
    return make_value<Context>(value).ref_value;
5881
1.26M
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)20, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5879
632k
{
5880
632k
    return make_value<Context>(value).ref_value;
5881
632k
}
Unexecuted instantiation: void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)17, double, void>(double&)
Unexecuted instantiation: void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
5882
template <scan_arg_store_kind Kind,
5883
          typename Context,
5884
          arg_type,
5885
          typename T,
5886
          typename = std::enable_if_t<Kind == scan_arg_store_kind::packed>>
5887
constexpr arg_value make_arg(T& value)
5888
{
5889
    return make_value<Context>(value);
5890
}
5891
template <scan_arg_store_kind Kind,
5892
          typename Context,
5893
          arg_type,
5894
          typename T,
5895
          typename = std::enable_if_t<Kind == scan_arg_store_kind::unpacked>>
5896
constexpr basic_scan_arg<Context> make_arg(T&& value)
5897
{
5898
    return make_arg<Context>(SCN_FWD(value));
5899
}
5900
5901
template <typename Context>
5902
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg);
5903
template <typename Context>
5904
constexpr arg_value get_arg_value(const basic_scan_arg<Context>& arg);
5905
5906
template <typename Context>
5907
constexpr arg_type& get_arg_type(basic_scan_arg<Context>& arg);
5908
template <typename Context>
5909
constexpr arg_type get_arg_type(const basic_scan_arg<Context>& arg);
5910
5911
template <typename Visitor, typename Context>
5912
constexpr decltype(auto) visit_impl(Visitor&& vis,
5913
                                    basic_scan_arg<Context>& arg);
5914
}  // namespace detail
5915
5916
/**
5917
 * Type-erased scanning argument.
5918
 *
5919
 * Contains a pointer to the value contained in a `scan_arg_store`.
5920
 */
5921
template <typename Context>
5922
class basic_scan_arg {
5923
public:
5924
    /**
5925
     * Enables scanning of a user-defined type.
5926
     *
5927
     * Contains a pointer to the value contained in a `scan_arg_store`, and
5928
     * a callback for parsing the format string, and scanning the value.
5929
     *
5930
     * \see scn::visit_scan_arg
5931
     */
5932
    class handle {
5933
    public:
5934
        /**
5935
         * Parse the format string in `parse_ctx`, and scan the value from
5936
         * `ctx`.
5937
         *
5938
         * \return Any error returned by the scanner
5939
         */
5940
        scan_expected<void> scan(
5941
            typename Context::parse_context_type& parse_ctx,
5942
            Context& ctx) const
5943
0
        {
5944
0
            return m_custom.scan(m_custom.value, &parse_ctx, &ctx);
5945
0
        }
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::handle::scan(scn::v4::basic_scan_parse_context<char>&, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>&) const
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::handle::scan(scn::v4::basic_scan_parse_context<wchar_t>&, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>&) const
5946
5947
    private:
5948
0
        explicit handle(detail::custom_value_type custom) : m_custom(custom) {}
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::handle::handle(scn::v4::detail::custom_value_type)
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::handle::handle(scn::v4::detail::custom_value_type)
5949
5950
        template <typename Visitor, typename C>
5951
        friend constexpr decltype(auto) detail::visit_impl(
5952
            Visitor&& vis,
5953
            basic_scan_arg<C>& arg);
5954
5955
        detail::custom_value_type m_custom;
5956
    };
5957
5958
    /// Construct a `basic_scan_arg` which doesn't contain an argument.
5959
2.71M
    constexpr basic_scan_arg() = default;
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_arg()
Line
Count
Source
5959
358k
    constexpr basic_scan_arg() = default;
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_arg()
Line
Count
Source
5959
2.36M
    constexpr basic_scan_arg() = default;
5960
5961
    /**
5962
     * @return `true` if `*this` contains an argument
5963
     */
5964
    constexpr explicit operator bool() const noexcept
5965
3.81M
    {
5966
3.81M
        return m_type != detail::arg_type::none_type;
5967
3.81M
    }
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::operator bool() const
Line
Count
Source
5965
504k
    {
5966
504k
        return m_type != detail::arg_type::none_type;
5967
504k
    }
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::operator bool() const
Line
Count
Source
5965
3.31M
    {
5966
3.31M
        return m_type != detail::arg_type::none_type;
5967
3.31M
    }
5968
5969
    /**
5970
     * Visit a `basic_scan_arg` with `Visitor`.
5971
     * Calls `vis` with the value stored in `*this`.
5972
     * If no value is contained in `*this`, calls `vis` with a `monostate`.
5973
     *
5974
     * \return `vis(x)`, where `x` is either a reference to the value contained
5975
     * in `*this`, or a `basic_scan_arg::handle`.
5976
     */
5977
    template <typename Visitor>
5978
    constexpr decltype(auto) visit(Visitor&& vis);
5979
5980
    template <typename R, typename Visitor>
5981
    constexpr R visit(Visitor&& vis);
5982
5983
private:
5984
    template <typename ContextType, typename T>
5985
    friend constexpr basic_scan_arg<ContextType> detail::make_arg(T& value);
5986
5987
    template <typename C>
5988
    friend constexpr detail::arg_type& detail::get_arg_type(
5989
        basic_scan_arg<C>& arg);
5990
    template <typename C>
5991
    friend constexpr detail::arg_type detail::get_arg_type(
5992
        const basic_scan_arg<C>& arg);
5993
5994
    template <typename C>
5995
    friend constexpr detail::arg_value& detail::get_arg_value(
5996
        basic_scan_arg<C>& arg);
5997
    template <typename C>
5998
    friend constexpr detail::arg_value detail::get_arg_value(
5999
        const basic_scan_arg<C>& arg);
6000
6001
    friend class basic_scan_args<Context>;
6002
6003
    detail::arg_value m_value{};
6004
    detail::arg_type m_type{detail::arg_type::none_type};
6005
};
6006
6007
namespace detail {
6008
template <typename Context>
6009
constexpr arg_type& get_arg_type(basic_scan_arg<Context>& arg)
6010
4.94M
{
6011
4.94M
    return arg.m_type;
6012
4.94M
}
scn::v4::detail::arg_type& scn::v4::detail::get_arg_type<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
6010
662k
{
6011
662k
    return arg.m_type;
6012
662k
}
scn::v4::detail::arg_type& scn::v4::detail::get_arg_type<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
6010
4.28M
{
6011
4.28M
    return arg.m_type;
6012
4.28M
}
6013
6014
template <typename Context>
6015
constexpr arg_type get_arg_type(const basic_scan_arg<Context>& arg)
6016
{
6017
    return arg.m_type;
6018
}
6019
6020
template <typename Context>
6021
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg)
6022
2.68M
{
6023
2.68M
    return arg.m_value;
6024
2.68M
}
scn::v4::detail::arg_value& scn::v4::detail::get_arg_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
6022
347k
{
6023
347k
    return arg.m_value;
6024
347k
}
scn::v4::detail::arg_value& scn::v4::detail::get_arg_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
6022
2.33M
{
6023
2.33M
    return arg.m_value;
6024
2.33M
}
6025
6026
template <typename Context>
6027
constexpr arg_value get_arg_value(const basic_scan_arg<Context>& arg)
6028
{
6029
    return arg.m_value;
6030
}
6031
6032
template <typename CharT>
6033
constexpr bool all_types_builtin()
6034
0
{
6035
0
    return true;
6036
0
}
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t>()
6037
template <typename CharT, typename T, typename... Args>
6038
constexpr bool all_types_builtin()
6039
0
{
6040
0
    return mapped_type_constant<T, CharT>::value != arg_type::custom_type &&
6041
0
           all_types_builtin<CharT, Args...>();
6042
0
}
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, double>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
6043
6044
template <typename CharT, typename... Args>
6045
constexpr scan_arg_store_kind determine_arg_store_kind()
6046
0
{
6047
0
    if (sizeof...(Args) > max_packed_args) {
6048
0
        return scan_arg_store_kind::unpacked;
6049
0
    }
6050
0
#if !(SCN_CLANG && SCN_APPLE)
6051
0
    // This doesn't work on Apple Clang. I don't know why
6052
0
    if (all_types_builtin<CharT, Args...>()) {
6053
0
        return scan_arg_store_kind::builtin;
6054
0
    }
6055
0
#endif
6056
0
    return scan_arg_store_kind::packed;
6057
0
}
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, double>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
6058
6059
template <scan_arg_store_kind Kind, typename CharT, typename... Args>
6060
constexpr size_t compute_arg_store_desc()
6061
0
{
6062
0
    if constexpr (Kind == scan_arg_store_kind::builtin) {
6063
0
        return encode_types<CharT, Args...>();
6064
0
    }
6065
0
    else if constexpr (Kind == scan_arg_store_kind::packed) {
6066
0
        return encode_types<CharT, Args...>() | has_custom_types_bit;
6067
0
    }
6068
0
    else {
6069
0
        return sizeof...(Args) | is_unpacked_bit;
6070
0
    }
6071
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
6072
6073
template <typename Context, typename... Args>
6074
class scan_arg_store {
6075
public:
6076
    static constexpr scan_arg_store_kind kind =
6077
        determine_arg_store_kind<typename Context::char_type, Args...>();
6078
    static constexpr size_t desc =
6079
        compute_arg_store_desc<kind, typename Context::char_type, Args...>();
6080
6081
    using argptr_type = std::conditional_t<
6082
        kind == scan_arg_store_kind::builtin,
6083
        void*,
6084
        std::conditional_t<kind == scan_arg_store_kind::packed,
6085
                           arg_value,
6086
                           basic_scan_arg<Context>>>;
6087
    using argptrs_type = std::array<argptr_type, sizeof...(Args)>;
6088
6089
    constexpr explicit scan_arg_store(std::tuple<Args...>& args)
6090
2.18M
        : args(std::apply(make_argptrs<Args...>, args))
6091
2.18M
    {
6092
2.18M
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
6090
200k
        : args(std::apply(make_argptrs<Args...>, args))
6091
200k
    {
6092
200k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
6090
90.7k
        : args(std::apply(make_argptrs<Args...>, args))
6091
90.7k
    {
6092
90.7k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
6090
1.26M
        : args(std::apply(make_argptrs<Args...>, args))
6091
1.26M
    {
6092
1.26M
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
6090
632k
        : args(std::apply(make_argptrs<Args...>, args))
6091
632k
    {
6092
632k
    }
Unexecuted instantiation: scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>::scan_arg_store(std::__1::tuple<double>&)
Unexecuted instantiation: scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
6093
6094
    argptrs_type args;
6095
6096
private:
6097
    template <typename... A>
6098
    static constexpr argptrs_type make_argptrs(A&... args)
6099
2.18M
    {
6100
2.18M
        return {detail::make_arg<
6101
2.18M
            kind, Context,
6102
2.18M
            mapped_type_constant<remove_cvref_t<A>,
6103
2.18M
                                 typename Context::char_type>::value>(args)...};
6104
2.18M
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
6099
200k
    {
6100
200k
        return {detail::make_arg<
6101
200k
            kind, Context,
6102
200k
            mapped_type_constant<remove_cvref_t<A>,
6103
200k
                                 typename Context::char_type>::value>(args)...};
6104
200k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::make_argptrs<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
6099
90.7k
    {
6100
90.7k
        return {detail::make_arg<
6101
90.7k
            kind, Context,
6102
90.7k
            mapped_type_constant<remove_cvref_t<A>,
6103
90.7k
                                 typename Context::char_type>::value>(args)...};
6104
90.7k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
6099
1.26M
    {
6100
1.26M
        return {detail::make_arg<
6101
1.26M
            kind, Context,
6102
1.26M
            mapped_type_constant<remove_cvref_t<A>,
6103
1.26M
                                 typename Context::char_type>::value>(args)...};
6104
1.26M
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::make_argptrs<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
6099
632k
    {
6100
632k
        return {detail::make_arg<
6101
632k
            kind, Context,
6102
632k
            mapped_type_constant<remove_cvref_t<A>,
6103
632k
                                 typename Context::char_type>::value>(args)...};
6104
632k
    }
Unexecuted instantiation: std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>::make_argptrs<double>(double&)
Unexecuted instantiation: std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
6105
};
6106
6107
}  // namespace detail
6108
6109
/**
6110
 * Creates a type-erased argument store over the arguments in `values`.
6111
 */
6112
template <typename Context = scan_context, typename... Args>
6113
constexpr auto make_scan_args(std::tuple<Args...>& values)
6114
2.18M
{
6115
2.18M
    detail::check_scan_arg_types<Args...>();
6116
2.18M
    return detail::scan_arg_store<Context, Args...>(values);
6117
2.18M
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
6114
200k
{
6115
200k
    detail::check_scan_arg_types<Args...>();
6116
200k
    return detail::scan_arg_store<Context, Args...>(values);
6117
200k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
6114
90.7k
{
6115
90.7k
    detail::check_scan_arg_types<Args...>();
6116
90.7k
    return detail::scan_arg_store<Context, Args...>(values);
6117
90.7k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
6114
1.26M
{
6115
1.26M
    detail::check_scan_arg_types<Args...>();
6116
1.26M
    return detail::scan_arg_store<Context, Args...>(values);
6117
1.26M
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
6114
632k
{
6115
632k
    detail::check_scan_arg_types<Args...>();
6116
632k
    return detail::scan_arg_store<Context, Args...>(values);
6117
632k
}
Unexecuted instantiation: auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>(std::__1::tuple<double>&)
Unexecuted instantiation: auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
6118
6119
template <typename... Args>
6120
constexpr auto make_wscan_args(std::tuple<Args...>& values)
6121
{
6122
    detail::check_scan_arg_types<Args...>();
6123
    return detail::scan_arg_store<wscan_context, Args...>(values);
6124
}
6125
6126
/**
6127
 * A view over a collection of scanning arguments (`scan_arg_store`).
6128
 *
6129
 * Passed to `scn::vscan`, where it's automatically constructed from a
6130
 * `scan_arg_store`.
6131
 */
6132
template <typename Context>
6133
class basic_scan_args {
6134
public:
6135
530k
    constexpr basic_scan_args() = default;
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args()
Line
Count
Source
6135
66.8k
    constexpr basic_scan_args() = default;
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args()
Line
Count
Source
6135
463k
    constexpr basic_scan_args() = default;
6136
6137
    template <typename... Args>
6138
    SCN_IMPLICIT constexpr basic_scan_args(
6139
        const detail::scan_arg_store<Context, Args...>& store)
6140
2.18M
        : basic_scan_args(store.desc, store.args.data())
6141
2.18M
    {
6142
2.18M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
6140
200k
        : basic_scan_args(store.desc, store.args.data())
6141
200k
    {
6142
200k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > const&)
Line
Count
Source
6140
90.7k
        : basic_scan_args(store.desc, store.args.data())
6141
90.7k
    {
6142
90.7k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > const&)
Line
Count
Source
6140
1.26M
        : basic_scan_args(store.desc, store.args.data())
6141
1.26M
    {
6142
1.26M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > const&)
Line
Count
Source
6140
632k
        : basic_scan_args(store.desc, store.args.data())
6141
632k
    {
6142
632k
    }
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<double>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double> const&)
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
6143
6144
    /**
6145
     * \return `basic_scan_arg` at index `id`. Empty `basic_scan_arg` if
6146
     * there's no argument at index `id`.
6147
     */
6148
    SCN_NODISCARD constexpr basic_scan_arg<Context> get(std::size_t id) const
6149
2.18M
    {
6150
2.18M
        if (SCN_UNLIKELY(!is_packed())) {
6151
0
            if (SCN_LIKELY(id < max_size())) {
6152
0
                return m_args[id];
6153
0
            }
6154
0
            return {};
6155
0
        }
6156
6157
2.18M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
6158
0
            return {};
6159
0
        }
6160
6161
2.18M
        const auto t = type(id);
6162
2.18M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
6163
0
            return {};
6164
0
        }
6165
6166
2.18M
        basic_scan_arg<Context> arg;
6167
2.18M
        arg.m_type = t;
6168
2.18M
        if (is_only_builtin()) {
6169
2.18M
            arg.m_value.ref_value = m_builtin_values[id];
6170
2.18M
        }
6171
0
        else {
6172
0
            arg.m_value = m_values[id];
6173
0
        }
6174
2.18M
        return arg;
6175
2.18M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::get(unsigned long) const
Line
Count
Source
6149
291k
    {
6150
291k
        if (SCN_UNLIKELY(!is_packed())) {
6151
0
            if (SCN_LIKELY(id < max_size())) {
6152
0
                return m_args[id];
6153
0
            }
6154
0
            return {};
6155
0
        }
6156
6157
291k
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
6158
0
            return {};
6159
0
        }
6160
6161
291k
        const auto t = type(id);
6162
291k
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
6163
0
            return {};
6164
0
        }
6165
6166
291k
        basic_scan_arg<Context> arg;
6167
291k
        arg.m_type = t;
6168
291k
        if (is_only_builtin()) {
6169
291k
            arg.m_value.ref_value = m_builtin_values[id];
6170
291k
        }
6171
0
        else {
6172
0
            arg.m_value = m_values[id];
6173
0
        }
6174
291k
        return arg;
6175
291k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::get(unsigned long) const
Line
Count
Source
6149
1.89M
    {
6150
1.89M
        if (SCN_UNLIKELY(!is_packed())) {
6151
0
            if (SCN_LIKELY(id < max_size())) {
6152
0
                return m_args[id];
6153
0
            }
6154
0
            return {};
6155
0
        }
6156
6157
1.89M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
6158
0
            return {};
6159
0
        }
6160
6161
1.89M
        const auto t = type(id);
6162
1.89M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
6163
0
            return {};
6164
0
        }
6165
6166
1.89M
        basic_scan_arg<Context> arg;
6167
1.89M
        arg.m_type = t;
6168
1.89M
        if (is_only_builtin()) {
6169
1.89M
            arg.m_value.ref_value = m_builtin_values[id];
6170
1.89M
        }
6171
0
        else {
6172
0
            arg.m_value = m_values[id];
6173
0
        }
6174
1.89M
        return arg;
6175
1.89M
    }
6176
6177
    /**
6178
     * \return Number of arguments in `*this`.
6179
     */
6180
    SCN_NODISCARD constexpr std::size_t size() const
6181
2.18M
    {
6182
2.18M
        if (SCN_UNLIKELY(!is_packed())) {
6183
0
            return max_size();
6184
0
        }
6185
6186
2.18M
        return static_cast<std::size_t>(m_desc &
6187
2.18M
                                        ((1 << detail::packed_arg_bits) - 1));
6188
2.18M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::size() const
Line
Count
Source
6181
291k
    {
6182
291k
        if (SCN_UNLIKELY(!is_packed())) {
6183
0
            return max_size();
6184
0
        }
6185
6186
291k
        return static_cast<std::size_t>(m_desc &
6187
291k
                                        ((1 << detail::packed_arg_bits) - 1));
6188
291k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::size() const
Line
Count
Source
6181
1.89M
    {
6182
1.89M
        if (SCN_UNLIKELY(!is_packed())) {
6183
0
            return max_size();
6184
0
        }
6185
6186
1.89M
        return static_cast<std::size_t>(m_desc &
6187
1.89M
                                        ((1 << detail::packed_arg_bits) - 1));
6188
1.89M
    }
6189
6190
private:
6191
    constexpr explicit basic_scan_args(size_t desc, void* const* data)
6192
2.18M
        : m_desc(desc), m_builtin_values(data)
6193
2.18M
    {
6194
2.18M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args(unsigned long, void* const*)
Line
Count
Source
6192
291k
        : m_desc(desc), m_builtin_values(data)
6193
291k
    {
6194
291k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args(unsigned long, void* const*)
Line
Count
Source
6192
1.89M
        : m_desc(desc), m_builtin_values(data)
6193
1.89M
    {
6194
1.89M
    }
6195
    constexpr explicit basic_scan_args(size_t desc,
6196
                                       const detail::arg_value* data)
6197
        : m_desc(desc), m_values(data)
6198
    {
6199
    }
6200
    constexpr explicit basic_scan_args(size_t desc,
6201
                                       const basic_scan_arg<Context>* data)
6202
        : m_desc(desc), m_args(data)
6203
    {
6204
    }
6205
6206
    SCN_NODISCARD constexpr bool is_packed() const
6207
4.37M
    {
6208
4.37M
        return (m_desc & detail::is_unpacked_bit) == 0;
6209
4.37M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::is_packed() const
Line
Count
Source
6207
582k
    {
6208
582k
        return (m_desc & detail::is_unpacked_bit) == 0;
6209
582k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::is_packed() const
Line
Count
Source
6207
3.79M
    {
6208
3.79M
        return (m_desc & detail::is_unpacked_bit) == 0;
6209
3.79M
    }
6210
    SCN_NODISCARD constexpr bool is_only_builtin() const
6211
2.18M
    {
6212
2.18M
        return (m_desc & detail::has_custom_types_bit) == 0;
6213
2.18M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::is_only_builtin() const
Line
Count
Source
6211
291k
    {
6212
291k
        return (m_desc & detail::has_custom_types_bit) == 0;
6213
291k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::is_only_builtin() const
Line
Count
Source
6211
1.89M
    {
6212
1.89M
        return (m_desc & detail::has_custom_types_bit) == 0;
6213
1.89M
    }
6214
6215
    SCN_NODISCARD constexpr detail::arg_type type(std::size_t index) const
6216
2.18M
    {
6217
        // First (0th) index is size, types start after that
6218
2.18M
        const auto shift = (index + 1) * detail::packed_arg_bits;
6219
2.18M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
6220
2.18M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
6221
2.18M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::type(unsigned long) const
Line
Count
Source
6216
291k
    {
6217
        // First (0th) index is size, types start after that
6218
291k
        const auto shift = (index + 1) * detail::packed_arg_bits;
6219
291k
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
6220
291k
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
6221
291k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::type(unsigned long) const
Line
Count
Source
6216
1.89M
    {
6217
        // First (0th) index is size, types start after that
6218
1.89M
        const auto shift = (index + 1) * detail::packed_arg_bits;
6219
1.89M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
6220
1.89M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
6221
1.89M
    }
6222
6223
    SCN_NODISCARD constexpr std::size_t max_size() const
6224
0
    {
6225
0
        return SCN_LIKELY(is_packed()) ? detail::max_packed_args
6226
0
                                       : (m_desc & ~detail::is_unpacked_bit &
6227
0
                                          ~detail::has_custom_types_bit);
6228
0
    }
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::max_size() const
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::max_size() const
6229
6230
    size_t m_desc{0};
6231
    union {
6232
        void* const* m_builtin_values;
6233
        const detail::arg_value* m_values;
6234
        const basic_scan_arg<Context>* m_args{nullptr};
6235
    };
6236
};
6237
6238
/////////////////////////////////////////////////////////////////
6239
// scan_parse_context
6240
/////////////////////////////////////////////////////////////////
6241
6242
template <typename T>
6243
struct source_tag_type {
6244
    using type = T;
6245
};
6246
template <typename T>
6247
inline constexpr auto source_tag = source_tag_type<T>{};
6248
6249
/**
6250
 * Format string parsing context, wrapping the format string being parsed,
6251
 * and a counter for argument indexing.
6252
 *
6253
 * \ingroup ctx
6254
 */
6255
template <typename CharT>
6256
class basic_scan_parse_context {
6257
public:
6258
    using char_type = CharT;
6259
    using iterator = typename std::basic_string_view<CharT>::const_pointer;
6260
    using const_iterator = iterator;
6261
6262
    /**
6263
     * Construct a `basic_scan_parse_context` over a format string `format`.
6264
     */
6265
    [[deprecated(
6266
        "Use the source_tag constructor instead,"
6267
        "to get more compile-time checking")]] explicit constexpr
6268
    basic_scan_parse_context(std::basic_string_view<CharT> format,
6269
                             int next_arg_id = 0)
6270
        : m_format{format}, m_next_arg_id{next_arg_id}
6271
    {
6272
    }
6273
6274
    template <typename Source>
6275
    explicit constexpr basic_scan_parse_context(
6276
        source_tag_type<Source>,
6277
        std::basic_string_view<CharT> format,
6278
        int next_arg_id = 0)
6279
1.12M
        : m_format{format},
6280
1.12M
          m_next_arg_id{next_arg_id},
6281
1.12M
          m_is_contiguous(ranges::range<Source> &&
6282
1.12M
                          ranges::contiguous_range<Source>),
6283
          m_is_borrowed(
6284
1.12M
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6285
1.12M
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6286
1.12M
    {
6287
1.12M
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&>(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Line
Count
Source
6279
98.7k
        : m_format{format},
6280
98.7k
          m_next_arg_id{next_arg_id},
6281
98.7k
          m_is_contiguous(ranges::range<Source> &&
6282
98.7k
                          ranges::contiguous_range<Source>),
6283
          m_is_borrowed(
6284
98.7k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6285
98.7k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6286
98.7k
    {
6287
98.7k
    }
scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::detail::basic_scan_buffer<char>&>(scn::v4::source_tag_type<scn::v4::detail::basic_scan_buffer<char>&>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Line
Count
Source
6279
58.7k
        : m_format{format},
6280
58.7k
          m_next_arg_id{next_arg_id},
6281
58.7k
          m_is_contiguous(ranges::range<Source> &&
6282
58.7k
                          ranges::contiguous_range<Source>),
6283
          m_is_borrowed(
6284
58.7k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6285
58.7k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6286
58.7k
    {
6287
58.7k
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&>(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
Line
Count
Source
6279
647k
        : m_format{format},
6280
647k
          m_next_arg_id{next_arg_id},
6281
647k
          m_is_contiguous(ranges::range<Source> &&
6282
647k
                          ranges::contiguous_range<Source>),
6283
          m_is_borrowed(
6284
647k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6285
647k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6286
647k
    {
6287
647k
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::detail::basic_scan_buffer<wchar_t>&>(scn::v4::source_tag_type<scn::v4::detail::basic_scan_buffer<wchar_t>&>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
Line
Count
Source
6279
323k
        : m_format{format},
6280
323k
          m_next_arg_id{next_arg_id},
6281
323k
          m_is_contiguous(ranges::range<Source> &&
6282
323k
                          ranges::contiguous_range<Source>),
6283
          m_is_borrowed(
6284
323k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6285
323k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6286
323k
    {
6287
323k
    }
6288
6289
    basic_scan_parse_context(const basic_scan_parse_context&) = delete;
6290
    basic_scan_parse_context& operator=(const basic_scan_parse_context&) =
6291
        delete;
6292
    basic_scan_parse_context(basic_scan_parse_context&&) = delete;
6293
    basic_scan_parse_context& operator=(basic_scan_parse_context&&) = delete;
6294
    ~basic_scan_parse_context() = default;
6295
6296
    /// Returns an iterator pointing to the beginning of the format string
6297
    constexpr auto begin() const noexcept
6298
2.22M
    {
6299
2.22M
        return m_format.data();
6300
2.22M
    }
scn::v4::basic_scan_parse_context<char>::begin() const
Line
Count
Source
6298
304k
    {
6299
304k
        return m_format.data();
6300
304k
    }
scn::v4::basic_scan_parse_context<wchar_t>::begin() const
Line
Count
Source
6298
1.91M
    {
6299
1.91M
        return m_format.data();
6300
1.91M
    }
6301
    /// Returns an iterator pointing to the end of the format string
6302
    constexpr auto end() const noexcept
6303
    {
6304
        return m_format.data() + m_format.size();
6305
    }
6306
6307
    /// Advance the beginning of the format string to `it`
6308
    constexpr void advance_to(iterator it)
6309
1.09M
    {
6310
1.09M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
6311
1.09M
    }
scn::v4::basic_scan_parse_context<char>::advance_to(char const*)
Line
Count
Source
6309
146k
    {
6310
146k
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
6311
146k
    }
scn::v4::basic_scan_parse_context<wchar_t>::advance_to(wchar_t const*)
Line
Count
Source
6309
949k
    {
6310
949k
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
6311
949k
    }
6312
6313
    constexpr size_t next_arg_id()
6314
1.12M
    {
6315
1.12M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
6316
0
            on_error(
6317
0
                "Cannot switch from manual to automatic argument indexing");
6318
0
            return 0;
6319
0
        }
6320
6321
1.12M
        auto id = static_cast<size_t>(m_next_arg_id++);
6322
1.12M
        do_check_arg_id(id);
6323
1.12M
        return id;
6324
1.12M
    }
scn::v4::basic_scan_parse_context<char>::next_arg_id()
Line
Count
Source
6314
157k
    {
6315
157k
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
6316
0
            on_error(
6317
0
                "Cannot switch from manual to automatic argument indexing");
6318
0
            return 0;
6319
0
        }
6320
6321
157k
        auto id = static_cast<size_t>(m_next_arg_id++);
6322
157k
        do_check_arg_id(id);
6323
157k
        return id;
6324
157k
    }
scn::v4::basic_scan_parse_context<wchar_t>::next_arg_id()
Line
Count
Source
6314
970k
    {
6315
970k
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
6316
0
            on_error(
6317
0
                "Cannot switch from manual to automatic argument indexing");
6318
0
            return 0;
6319
0
        }
6320
6321
970k
        auto id = static_cast<size_t>(m_next_arg_id++);
6322
970k
        do_check_arg_id(id);
6323
970k
        return id;
6324
970k
    }
6325
6326
    constexpr void check_arg_id(std::size_t id)
6327
0
    {
6328
0
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
6329
0
            on_error(
6330
0
                "Cannot switch from manual to automatic argument indexing");
6331
0
            return;
6332
0
        }
6333
0
        m_next_arg_id = -1;
6334
0
        do_check_arg_id(id);
6335
0
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::check_arg_id(unsigned long)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::check_arg_id(unsigned long)
6336
6337
    /**
6338
     * Fail format string parsing with the message `msg`.
6339
     * Calling this member function is not a constant expression,
6340
     * causing a compile-time error, if compile-time format string checking is
6341
     * enabled.
6342
     */
6343
    scan_error on_error(const char* msg)
6344
0
    {
6345
0
        m_error = unexpected(detail::handle_error(
6346
0
            scan_error{scan_error::invalid_format_string, msg}));
6347
0
        return m_error.error();
6348
0
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::on_error(char const*)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::on_error(char const*)
6349
6350
    scan_expected<void> get_error()
6351
    {
6352
        return m_error;
6353
    }
6354
6355
    [[nodiscard]] constexpr bool is_source_contiguous() const
6356
    {
6357
        return m_is_contiguous;
6358
    }
6359
6360
    [[nodiscard]] constexpr bool is_source_borrowed() const
6361
    {
6362
        return m_is_borrowed;
6363
    }
6364
6365
protected:
6366
    constexpr void do_check_arg_id(size_t id);
6367
6368
    std::basic_string_view<CharT> m_format;
6369
    scan_expected<void> m_error{};
6370
    int m_next_arg_id{0};
6371
    bool m_is_contiguous{false}, m_is_borrowed{false};
6372
};
6373
6374
/////////////////////////////////////////////////////////////////
6375
// Result types
6376
/////////////////////////////////////////////////////////////////
6377
6378
namespace detail {
6379
template <typename... Args>
6380
struct scan_result_value_storage {
6381
public:
6382
    using tuple_type = std::tuple<Args...>;
6383
6384
2.71M
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result_value_storage()
Line
Count
Source
6384
246k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result_value_storage()
Line
Count
Source
6384
111k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result_value_storage()
Line
Count
Source
6384
1.57M
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result_value_storage()
Line
Count
Source
6384
787k
    constexpr scan_result_value_storage() = default;
Unexecuted instantiation: scn::v4::detail::scan_result_value_storage<double>::scan_result_value_storage()
6385
6386
    constexpr scan_result_value_storage(tuple_type&& values)
6387
        : m_values(SCN_MOVE(values))
6388
    {
6389
    }
6390
6391
    /// Access the scanned values
6392
    tuple_type& values() &
6393
2.18M
    {
6394
2.18M
        return m_values;
6395
2.18M
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::values() &
Line
Count
Source
6393
200k
    {
6394
200k
        return m_values;
6395
200k
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::values() &
Line
Count
Source
6393
90.7k
    {
6394
90.7k
        return m_values;
6395
90.7k
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::values() &
Line
Count
Source
6393
1.26M
    {
6394
1.26M
        return m_values;
6395
1.26M
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::values() &
Line
Count
Source
6393
632k
    {
6394
632k
        return m_values;
6395
632k
    }
Unexecuted instantiation: scn::v4::detail::scan_result_value_storage<double>::values() &
6396
    /// Access the scanned values
6397
    const tuple_type& values() const&
6398
    {
6399
        return m_values;
6400
    }
6401
    /// Access the scanned values
6402
    tuple_type&& values() &&
6403
    {
6404
        return SCN_MOVE(m_values);
6405
    }
6406
    /// Access the scanned values
6407
    const tuple_type&& values() const&&
6408
    {
6409
        return SCN_MOVE(m_values);
6410
    }
6411
6412
    /// Access the single scanned value
6413
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6414
    decltype(auto) value() &
6415
530k
    {
6416
530k
        return std::get<0>(m_values);
6417
530k
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6415
46.1k
    {
6416
46.1k
        return std::get<0>(m_values);
6417
46.1k
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6415
20.7k
    {
6416
20.7k
        return std::get<0>(m_values);
6417
20.7k
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__112basic_stringIwNS3_11char_traitsIwEENS3_9allocatorIwEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6415
308k
    {
6416
308k
        return std::get<0>(m_values);
6417
308k
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6415
154k
    {
6416
154k
        return std::get<0>(m_values);
6417
154k
    }
Unexecuted instantiation: _ZNR3scn2v46detail25scan_result_value_storageIJdEE5valueILm1ETnPNSt3__19enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
6418
    /// Access the single scanned value
6419
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6420
    decltype(auto) value() const&
6421
    {
6422
        return std::get<0>(m_values);
6423
    }
6424
    /// Access the single scanned value
6425
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6426
    decltype(auto) value() &&
6427
    {
6428
        return SCN_MOVE(std::get<0>(m_values));
6429
    }
6430
    /// Access the single scanned value
6431
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6432
    decltype(auto) value() const&&
6433
    {
6434
        return SCN_MOVE(std::get<0>(m_values));
6435
    }
6436
6437
private:
6438
    SCN_NO_UNIQUE_ADDRESS tuple_type m_values{};
6439
};
6440
6441
struct scan_result_convert_tag {};
6442
6443
template <typename Range>
6444
struct scan_result_range_storage {
6445
    static_assert(is_specialization_of_v<Range, ranges::subrange>,
6446
                  "scan_result<Range> accepts only subranges as Ranges");
6447
6448
public:
6449
    using range_type = Range;
6450
    using iterator = ranges::iterator_t<Range>;
6451
    using sentinel = ranges::sentinel_t<Range>;
6452
6453
2.71M
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::scan_result_range_storage()
Line
Count
Source
6453
223k
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::scan_result_range_storage()
Line
Count
Source
6453
135k
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::scan_result_range_storage()
Line
Count
Source
6453
1.57M
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::scan_result_range_storage()
Line
Count
Source
6453
787k
    constexpr scan_result_range_storage() = default;
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_result_range_storage()
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::scan_result_range_storage()
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_result_range_storage()
6454
6455
    constexpr scan_result_range_storage(range_type&& r) : m_range(SCN_MOVE(r))
6456
    {
6457
    }
6458
6459
    template <typename R>
6460
    explicit constexpr scan_result_range_storage(scan_result_convert_tag, R&& r)
6461
        : m_range(SCN_MOVE(r))
6462
    {
6463
    }
6464
6465
    /// Access the ununsed source range
6466
    range_type range() const
6467
    {
6468
        return m_range;
6469
    }
6470
6471
    /// The beginning of the unused source range
6472
    auto begin() const
6473
2.61M
    {
6474
2.61M
        return ranges::begin(m_range);
6475
2.61M
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::begin() const
Line
Count
Source
6473
199k
    {
6474
199k
        return ranges::begin(m_range);
6475
199k
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::begin() const
Line
Count
Source
6473
123k
    {
6474
123k
        return ranges::begin(m_range);
6475
123k
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::begin() const
Line
Count
Source
6473
1.52M
    {
6474
1.52M
        return ranges::begin(m_range);
6475
1.52M
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::begin() const
Line
Count
Source
6473
763k
    {
6474
763k
        return ranges::begin(m_range);
6475
763k
    }
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::begin() const
6476
    /// The end of the unused source range
6477
    auto end() const
6478
0
    {
6479
0
        return ranges::end(m_range);
6480
0
    }
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
6481
6482
    template <typename Other>
6483
    void set_range(Other&& r)
6484
2.61M
    {
6485
2.61M
        m_range = std::forward<Other>(r);
6486
2.61M
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::set_range<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
6484
199k
    {
6485
199k
        m_range = std::forward<Other>(r);
6486
199k
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::set_range<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
6484
123k
    {
6485
123k
        m_range = std::forward<Other>(r);
6486
123k
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::set_range<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
6484
1.52M
    {
6485
1.52M
        m_range = std::forward<Other>(r);
6486
1.52M
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::set_range<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
6484
763k
    {
6485
763k
        m_range = std::forward<Other>(r);
6486
763k
    }
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::set_range<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::set_range<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::set_range<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
6487
6488
protected:
6489
    template <typename Other>
6490
    void assign_range(Other&& r)
6491
    {
6492
        m_range = r.m_range;
6493
    }
6494
6495
private:
6496
    SCN_NO_UNIQUE_ADDRESS range_type m_range{};
6497
};
6498
6499
struct scan_result_file_storage {
6500
public:
6501
    using range_type = std::FILE*;
6502
6503
    constexpr scan_result_file_storage() = default;
6504
6505
0
    constexpr scan_result_file_storage(std::FILE* f) : m_file(f) {}
6506
6507
    /// File used for scanning
6508
    std::FILE* file() const
6509
0
    {
6510
0
        return m_file;
6511
0
    }
6512
6513
    void set_range(std::FILE* f)
6514
0
    {
6515
0
        m_file = f;
6516
0
    }
6517
6518
protected:
6519
    void assign_range(const scan_result_file_storage& f)
6520
0
    {
6521
0
        m_file = f.m_file;
6522
0
    }
6523
6524
private:
6525
    std::FILE* m_file{nullptr};
6526
};
6527
6528
struct scan_result_dangling {
6529
    using range_type = ranges::dangling;
6530
6531
    constexpr scan_result_dangling() = default;
6532
6533
    template <typename... Args>
6534
    explicit constexpr scan_result_dangling(Args&&...)
6535
    {
6536
    }
6537
6538
    range_type range() const
6539
0
    {
6540
0
        return {};
6541
0
    }
6542
6543
    ranges::dangling begin() const
6544
0
    {
6545
0
        return {};
6546
0
    }
6547
    ranges::dangling end() const
6548
0
    {
6549
0
        return {};
6550
0
    }
6551
6552
    template <typename... Args>
6553
    void set_range(Args&&...)
6554
    {
6555
    }
6556
6557
protected:
6558
    template <typename... Args>
6559
    void assign_range(Args&&...)
6560
    {
6561
    }
6562
};
6563
6564
template <typename Range>
6565
constexpr auto get_scan_result_base()
6566
0
{
6567
0
    if constexpr (std::is_same_v<remove_cvref_t<Range>, ranges::dangling>) {
6568
0
        return type_identity<scan_result_dangling>{};
6569
0
    }
6570
0
    else if constexpr (std::is_same_v<remove_cvref_t<Range>, std::FILE*>) {
6571
0
        return type_identity<scan_result_file_storage>{};
6572
0
    }
6573
0
    else {
6574
0
        return type_identity<scan_result_range_storage<Range>>{};
6575
0
    }
6576
0
}
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >()
6577
6578
#if !SCN_DOXYGEN
6579
template <typename Range>
6580
using scan_result_base = typename decltype(get_scan_result_base<Range>())::type;
6581
#else
6582
template <typename Range>
6583
using scan_result_base = scan_result_range_storage<Range>;
6584
#endif
6585
}  // namespace detail
6586
6587
/**
6588
 * \defgroup result Result types
6589
 *
6590
 * \brief Result and error types
6591
 *
6592
 * Instead of using exceptions, `scn::scan` and others return an object of
6593
 * type `scn::scan_result`, wrapped inside a `scn::scan_expected`.
6594
 */
6595
6596
/**
6597
 * Type returned by `scan`, contains the unused input as a subrange, and the
6598
 * scanned values in a tuple.
6599
 */
6600
template <typename Range, typename... Args>
6601
class scan_result : public detail::scan_result_base<Range>,
6602
                    public detail::scan_result_value_storage<Args...> {
6603
    using range_base = detail::scan_result_base<Range>;
6604
    using value_base = detail::scan_result_value_storage<Args...>;
6605
6606
public:
6607
    using range_type = typename range_base::range_type;
6608
    using tuple_type = typename value_base::tuple_type;
6609
6610
2.71M
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Line
Count
Source
6610
111k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result()
Line
Count
Source
6610
111k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Line
Count
Source
6610
135k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result()
Line
Count
Source
6610
787k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result()
Line
Count
Source
6610
787k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result()
Line
Count
Source
6610
787k
    constexpr scan_result() = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
6611
6612
    constexpr scan_result(const scan_result&) = default;
6613
0
    constexpr scan_result(scan_result&&) = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
6614
    constexpr scan_result& operator=(const scan_result&) = default;
6615
0
    constexpr scan_result& operator=(scan_result&&) = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
6616
6617
1.82M
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
6617
111k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
6617
135k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
6617
787k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
6617
787k
    ~scan_result() = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
6618
6619
    scan_result(range_type r, tuple_type&& values)
6620
        : range_base(SCN_MOVE(r)), value_base(SCN_MOVE(values))
6621
    {
6622
    }
6623
6624
    template <typename OtherR,
6625
              std::enable_if_t<std::is_constructible_v<range_type, OtherR>>* =
6626
                  nullptr>
6627
    scan_result(OtherR&& r, tuple_type&& values)
6628
        : range_base(detail::scan_result_convert_tag{}, SCN_FWD(r)),
6629
          value_base(SCN_MOVE(values))
6630
    {
6631
    }
6632
6633
    template <typename OtherR,
6634
              std::enable_if_t<
6635
                  std::is_constructible_v<range_type, OtherR> &&
6636
                  std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
6637
    SCN_IMPLICIT scan_result(const scan_result<OtherR, Args...>& o)
6638
        : range_base(detail::scan_result_convert_tag{}, o.range()),
6639
          value_base(o.values())
6640
    {
6641
    }
6642
    template <typename OtherR,
6643
              std::enable_if_t<
6644
                  std::is_constructible_v<range_type, OtherR> &&
6645
                  !std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
6646
    explicit scan_result(const scan_result<OtherR, Args...>& o)
6647
        : range_base(detail::scan_result_convert_tag{}, o.range()),
6648
          value_base(o.values())
6649
    {
6650
    }
6651
6652
    template <typename OtherR,
6653
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
6654
                               std::is_convertible_v<OtherR&&, range_type>>* =
6655
                  nullptr>
6656
    SCN_IMPLICIT scan_result(scan_result<OtherR, Args...>&& o)
6657
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
6658
          value_base(SCN_MOVE(o.values()))
6659
    {
6660
    }
6661
    template <typename OtherR,
6662
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
6663
                               !std::is_convertible_v<OtherR&&, range_type>>* =
6664
                  nullptr>
6665
    explicit scan_result(scan_result<OtherR, Args...>&& o)
6666
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
6667
          value_base(SCN_MOVE(o.values()))
6668
    {
6669
    }
6670
6671
    template <typename OtherR,
6672
              typename =
6673
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
6674
    scan_result& operator=(const scan_result<OtherR, Args...>& o)
6675
    {
6676
        this->assign_range(o);
6677
        this->values() = o.values();
6678
        return *this;
6679
    }
6680
6681
    template <typename OtherR,
6682
              typename =
6683
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
6684
    scan_result& operator=(scan_result<OtherR, Args...>&& o)
6685
    {
6686
        this->assign_range(o);
6687
        this->values() = SCN_MOVE(o.values());
6688
        return *this;
6689
    }
6690
};
6691
6692
template <typename R, typename... Args>
6693
scan_result(R, std::tuple<Args...>) -> scan_result<R, Args...>;
6694
template <typename R, typename Ctx, typename... Args>
6695
scan_result(R, detail::scan_arg_store<Ctx, Args...>&)
6696
    -> scan_result<R, Args...>;
6697
6698
namespace detail {
6699
template <typename SourceRange>
6700
auto make_vscan_result_range_end(SourceRange& source)
6701
2.61M
{
6702
2.61M
    return ranges::end(source);
6703
2.61M
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&)
Line
Count
Source
6701
199k
{
6702
199k
    return ranges::end(source);
6703
199k
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&)
Line
Count
Source
6701
123k
{
6702
123k
    return ranges::end(source);
6703
123k
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&)
Line
Count
Source
6701
1.52M
{
6702
1.52M
    return ranges::end(source);
6703
1.52M
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&)
Line
Count
Source
6701
763k
{
6702
763k
    return ranges::end(source);
6703
763k
}
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
6704
template <typename CharT, size_t N>
6705
auto make_vscan_result_range_end(CharT (&source)[N])
6706
    -> ranges::sentinel_t<CharT (&)[N]>
6707
{
6708
    return source + N - 1;
6709
}
6710
6711
template <typename SourceRange>
6712
auto make_vscan_result_range(SourceRange&& source, std::ptrdiff_t n)
6713
    -> borrowed_tail_subrange_t<SourceRange>
6714
2.61M
{
6715
    if constexpr (ranges::random_access_iterator<
6716
2.61M
                      ranges::iterator_t<SourceRange>>) {
6717
2.61M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6718
    }
6719
0
    else {
6720
0
        auto it = ranges::begin(source);
6721
0
        while (n > 0) {
6722
0
            --n;
6723
0
            ++it;
6724
0
        }
6725
0
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6726
0
    }
6727
2.61M
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
6714
199k
{
6715
    if constexpr (ranges::random_access_iterator<
6716
199k
                      ranges::iterator_t<SourceRange>>) {
6717
199k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6718
    }
6719
    else {
6720
        auto it = ranges::begin(source);
6721
        while (n > 0) {
6722
            --n;
6723
            ++it;
6724
        }
6725
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6726
    }
6727
199k
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
6714
123k
{
6715
    if constexpr (ranges::random_access_iterator<
6716
123k
                      ranges::iterator_t<SourceRange>>) {
6717
123k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6718
    }
6719
    else {
6720
        auto it = ranges::begin(source);
6721
        while (n > 0) {
6722
            --n;
6723
            ++it;
6724
        }
6725
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6726
    }
6727
123k
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
6714
1.52M
{
6715
    if constexpr (ranges::random_access_iterator<
6716
1.52M
                      ranges::iterator_t<SourceRange>>) {
6717
1.52M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6718
    }
6719
    else {
6720
        auto it = ranges::begin(source);
6721
        while (n > 0) {
6722
            --n;
6723
            ++it;
6724
        }
6725
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6726
    }
6727
1.52M
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
6714
763k
{
6715
    if constexpr (ranges::random_access_iterator<
6716
763k
                      ranges::iterator_t<SourceRange>>) {
6717
763k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6718
    }
6719
    else {
6720
        auto it = ranges::begin(source);
6721
        while (n > 0) {
6722
            --n;
6723
            ++it;
6724
        }
6725
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6726
    }
6727
763k
}
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISD_EEE4typeEOSD_l
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeIRNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISC_EEE4typeEOSC_l
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISD_EEE4typeEOSD_l
6728
inline auto make_vscan_result_range(std::FILE* source, std::ptrdiff_t)
6729
0
{
6730
0
    return source;
6731
0
}
6732
}  // namespace detail
6733
6734
/////////////////////////////////////////////////////////////////
6735
// Format string parsing
6736
/////////////////////////////////////////////////////////////////
6737
6738
namespace detail {
6739
/// Parse context with extra data used only for compile-time checks
6740
template <typename CharT>
6741
class compile_parse_context : public basic_scan_parse_context<CharT> {
6742
    using base = basic_scan_parse_context<CharT>;
6743
6744
public:
6745
    template <typename Source>
6746
    explicit constexpr compile_parse_context(
6747
        source_tag_type<Source>,
6748
        std::basic_string_view<CharT> format_str,
6749
        int num_args,
6750
        const arg_type* types,
6751
        int next_arg_id = 0)
6752
        : base(source_tag<Source>, format_str, next_arg_id),
6753
          m_num_args(num_args),
6754
          m_types(types)
6755
    {
6756
    }
6757
6758
    SCN_NODISCARD constexpr int get_num_args() const
6759
0
    {
6760
0
        return m_num_args;
6761
0
    }
Unexecuted instantiation: scn::v4::detail::compile_parse_context<char>::get_num_args() const
Unexecuted instantiation: scn::v4::detail::compile_parse_context<wchar_t>::get_num_args() const
6762
    SCN_NODISCARD constexpr arg_type get_arg_type(std::size_t id) const
6763
    {
6764
        return m_types[id];
6765
    }
6766
6767
    SCN_GCC_PUSH
6768
    SCN_GCC_IGNORE("-Wsign-conversion")
6769
6770
    constexpr std::size_t next_arg_id()
6771
    {
6772
        auto id = base::next_arg_id();
6773
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
6774
            this->on_error("Argument not found");
6775
        }
6776
        return id;
6777
    }
6778
6779
    constexpr void check_arg_id(std::size_t id)
6780
    {
6781
        base::check_arg_id(id);
6782
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
6783
            this->on_error("Argument not found");
6784
        }
6785
    }
6786
    using base::check_arg_id;
6787
6788
private:
6789
    int m_num_args;
6790
    const arg_type* m_types;
6791
6792
    SCN_GCC_POP  // -Wsign-conversion
6793
};
6794
6795
constexpr inline bool is_constant_evaluated(bool default_value = false) noexcept
6796
0
{
6797
0
#ifdef __cpp_lib_is_constant_evaluated
6798
0
    SCN_UNUSED(default_value);
6799
0
    return std::is_constant_evaluated();
6800
0
#else
6801
0
    return default_value;
6802
0
#endif
6803
0
}
6804
}  // namespace detail
6805
6806
template <typename CharT>
6807
constexpr void basic_scan_parse_context<CharT>::do_check_arg_id(size_t id)
6808
1.12M
{
6809
1.12M
    if (detail::is_constant_evaluated() &&
6810
1.12M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6811
        // The cast below will cause an error on gcc pre-12
6812
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6813
0
        if (static_cast<int>(id) >=
6814
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6815
0
            SCN_UNLIKELY_ATTR
6816
0
            on_error("Argument not found");
6817
0
        }
6818
0
    }
6819
1.12M
}
scn::v4::basic_scan_parse_context<char>::do_check_arg_id(unsigned long)
Line
Count
Source
6808
157k
{
6809
157k
    if (detail::is_constant_evaluated() &&
6810
157k
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6811
        // The cast below will cause an error on gcc pre-12
6812
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6813
0
        if (static_cast<int>(id) >=
6814
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6815
0
            SCN_UNLIKELY_ATTR
6816
0
            on_error("Argument not found");
6817
0
        }
6818
0
    }
6819
157k
}
scn::v4::basic_scan_parse_context<wchar_t>::do_check_arg_id(unsigned long)
Line
Count
Source
6808
970k
{
6809
970k
    if (detail::is_constant_evaluated() &&
6810
970k
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6811
        // The cast below will cause an error on gcc pre-12
6812
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6813
0
        if (static_cast<int>(id) >=
6814
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6815
0
            SCN_UNLIKELY_ATTR
6816
0
            on_error("Argument not found");
6817
0
        }
6818
0
    }
6819
970k
}
6820
6821
namespace detail {
6822
enum class align_type : unsigned char {
6823
    none = 0,
6824
    left = 1,   // '<'
6825
    right = 2,  // '>'
6826
    center = 3  // '^'
6827
};
6828
6829
enum class presentation_type {
6830
    none,
6831
    int_binary,            // 'b', 'B'
6832
    int_decimal,           // 'd'
6833
    int_generic,           // 'i'
6834
    int_unsigned_decimal,  // 'u'
6835
    int_octal,             // 'o'
6836
    int_hex,               // 'x', 'X'
6837
    int_arbitrary_base,    // 'rnn', 'Rnn' (R for radix)
6838
    float_hex,             // 'a', 'A'
6839
    float_scientific,      // 'e', 'E'
6840
    float_fixed,           // 'f', 'F'
6841
    float_general,         // 'g', 'G'
6842
    string,                // 's'
6843
    string_set,            // '[...]'
6844
    regex,                 // '/.../.'
6845
    regex_escaped,         // '/..\/../.'
6846
    character,             // 'c'
6847
    escaped_character,     // '?'
6848
    pointer,               // 'p'
6849
};
6850
6851
enum class regex_flags {
6852
    none = 0,
6853
    multiline = 1,   // /m
6854
    singleline = 2,  // /s
6855
    nocase = 4,      // /i
6856
    nocapture = 8,   // /n
6857
    // TODO?
6858
    // would probably need to go hand-in-hand with locale,
6859
    // where it could even be the default/only option -> no flag?
6860
    // why else would you even use locale with a regex?
6861
    // collate = 16,
6862
};
6863
6864
constexpr regex_flags operator&(regex_flags a, regex_flags b)
6865
0
{
6866
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) &
6867
0
                                    static_cast<unsigned>(b));
6868
0
}
6869
constexpr regex_flags operator|(regex_flags a, regex_flags b)
6870
0
{
6871
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) |
6872
0
                                    static_cast<unsigned>(b));
6873
0
}
6874
constexpr regex_flags operator^(regex_flags a, regex_flags b)
6875
0
{
6876
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) ^
6877
0
                                    static_cast<unsigned>(b));
6878
0
}
6879
6880
constexpr regex_flags& operator&=(regex_flags& a, regex_flags b)
6881
0
{
6882
0
    return a = a & b;
6883
0
}
6884
constexpr regex_flags& operator|=(regex_flags& a, regex_flags b)
6885
0
{
6886
0
    return a = a | b;
6887
0
}
6888
constexpr regex_flags& operator^=(regex_flags& a, regex_flags b)
6889
0
{
6890
0
    return a = a ^ b;
6891
0
}
6892
6893
class fill_type {
6894
public:
6895
    constexpr void operator=(char c)
6896
0
    {
6897
0
        m_data[0] = c;
6898
0
        m_size = 1;
6899
0
    }
6900
6901
    template <typename CharT>
6902
    constexpr void operator=(std::basic_string_view<CharT> s)
6903
0
    {
6904
0
        SCN_EXPECT(!s.empty());
6905
0
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6906
0
        if constexpr (sizeof(CharT) == 1) {
6907
0
            for (size_t i = 0; i < s.size(); ++i) {
6908
0
                SCN_GCC_PUSH
6909
0
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6910
0
                m_data[i] = s[i];
6911
0
                SCN_GCC_POP
6912
0
            }
6913
0
            m_size = static_cast<unsigned char>(s.size());
6914
        }
6915
        else if constexpr (sizeof(CharT) == 2) {
6916
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6917
            m_data[1] =
6918
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6919
            if (s.size() == 1) {
6920
                return;
6921
            }
6922
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6923
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6924
        }
6925
0
        else {
6926
0
            const auto front = static_cast<unsigned>(s.front());
6927
0
            m_data[0] = static_cast<char>(front);
6928
0
            m_data[1] = static_cast<char>(front >> 8);
6929
0
            m_data[2] = static_cast<char>(front >> 16);
6930
0
            m_data[3] = static_cast<char>(front >> 24);
6931
0
        }
6932
0
    }
Unexecuted instantiation: void scn::v4::detail::fill_type::operator=<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: void scn::v4::detail::fill_type::operator=<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
6933
6934
    constexpr size_t size() const
6935
0
    {
6936
0
        return m_size;
6937
0
    }
6938
6939
    template <typename CharT>
6940
    CharT get_code_unit() const
6941
0
    {
6942
0
        SCN_EXPECT(m_size <= sizeof(CharT));
6943
0
        CharT r{};
6944
0
        std::memcpy(&r, m_data, m_size);
6945
0
        return r;
6946
0
    }
Unexecuted instantiation: char scn::v4::detail::fill_type::get_code_unit<char>() const
Unexecuted instantiation: wchar_t scn::v4::detail::fill_type::get_code_unit<wchar_t>() const
6947
6948
    template <typename CharT>
6949
    std::basic_string_view<CharT> get_code_units() const
6950
0
    {
6951
0
        return {reinterpret_cast<const CharT*>(m_data), m_size};
6952
0
    }
Unexecuted instantiation: std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::fill_type::get_code_units<char>() const
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::fill_type::get_code_units<wchar_t>() const
6953
6954
private:
6955
    static constexpr size_t max_size = 4;
6956
    char m_data[max_size] = {' '};
6957
    unsigned char m_size{1};
6958
};
6959
6960
struct format_specs {
6961
    int width{0}, precision{0};
6962
    fill_type fill{};
6963
    presentation_type type{presentation_type::none};
6964
    std::array<uint8_t, 128 / 8> charset_literals{0};
6965
    bool charset_has_nonascii{false}, charset_is_inverted{false};
6966
    const void* charset_string_data{nullptr};
6967
    size_t charset_string_size{0};
6968
    regex_flags regexp_flags{regex_flags::none};
6969
    unsigned char arbitrary_base{0};
6970
    align_type align{align_type::none};
6971
    bool localized{false};
6972
6973
    constexpr format_specs() = default;
6974
6975
    SCN_NODISCARD constexpr int get_base() const
6976
0
    {
6977
0
        SCN_GCC_COMPAT_PUSH
6978
0
        SCN_GCC_COMPAT_IGNORE("-Wswitch-enum")
6979
0
        switch (type) {
6980
0
            case presentation_type::none:
6981
0
                return 10;
6982
0
            case presentation_type::int_generic:
6983
0
                return 0;
6984
0
            case presentation_type::int_arbitrary_base:
6985
0
                return arbitrary_base;
6986
6987
0
            case presentation_type::int_binary:
6988
0
                return 2;
6989
0
            case presentation_type::int_octal:
6990
0
                return 8;
6991
0
            case presentation_type::int_decimal:
6992
0
            case presentation_type::int_unsigned_decimal:
6993
0
                return 10;
6994
0
            case presentation_type::int_hex:
6995
0
                return 16;
6996
6997
0
            default:
6998
0
                SCN_EXPECT(false);
6999
0
                SCN_UNREACHABLE;
7000
0
        }
7001
0
        SCN_GCC_COMPAT_POP
7002
0
    }
7003
7004
    template <typename CharT>
7005
    std::basic_string_view<CharT> charset_string() const
7006
0
    {
7007
0
        return {reinterpret_cast<const CharT*>(charset_string_data),
7008
0
                charset_string_size};
7009
0
    }
Unexecuted instantiation: std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::format_specs::charset_string<char>() const
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::format_specs::charset_string<wchar_t>() const
7010
};
7011
7012
struct specs_setter {
7013
public:
7014
1.12M
    explicit constexpr specs_setter(format_specs& specs) : m_specs(specs) {}
7015
7016
    constexpr void on_align(align_type align)
7017
0
    {
7018
0
        m_specs.align = align;
7019
0
    }
7020
    template <typename CharT>
7021
    constexpr void on_fill(std::basic_string_view<CharT> fill)
7022
0
    {
7023
0
        m_specs.fill = fill;
7024
0
    }
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_fill<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_fill<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
7025
    template <bool Dependent = true>
7026
    constexpr void on_localized()
7027
0
    {
7028
0
        if constexpr (!SCN_DISABLE_LOCALE) {
7029
0
            m_specs.localized = true;
7030
        }
7031
        else {
7032
            on_error("'L' flag invalid when SCN_DISABLE_LOCALE is on");
7033
        }
7034
0
    }
7035
7036
    constexpr void on_width(int width)
7037
32.6k
    {
7038
32.6k
        if (m_specs.precision != 0 && width > m_specs.precision) {
7039
            // clang-format off
7040
0
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
7041
            // clang-format on
7042
0
        }
7043
7044
32.6k
        m_specs.width = width;
7045
32.6k
    }
7046
    constexpr void on_precision(int prec)
7047
0
    {
7048
0
        if (m_specs.width > prec) {
7049
            // clang-format off
7050
0
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
7051
            // clang-format on
7052
0
        }
7053
7054
0
        m_specs.precision = prec;
7055
0
    }
7056
7057
    constexpr void on_type(presentation_type type)
7058
1.09M
    {
7059
1.09M
        m_specs.type = type;
7060
1.09M
    }
7061
7062
    constexpr void on_charset_single(char32_t cp)
7063
0
    {
7064
0
        const auto cp_value = static_cast<unsigned>(cp);
7065
0
        if (SCN_LIKELY(cp_value <= 127)) {
7066
0
            m_specs.charset_literals[cp_value / 8] |=
7067
0
                static_cast<unsigned char>(1ul << (cp_value % 8));
7068
0
        }
7069
0
        else {
7070
0
            m_specs.charset_has_nonascii = true;
7071
0
        }
7072
0
    }
7073
7074
    constexpr void on_charset_range(char32_t begin, char32_t end)
7075
37.6k
    {
7076
37.6k
        const auto begin_value = static_cast<unsigned>(begin);
7077
37.6k
        const auto end_value = static_cast<unsigned>(end);
7078
37.6k
        SCN_EXPECT(begin_value < end_value);
7079
7080
37.6k
        if (SCN_LIKELY(end_value <= 127)) {
7081
            // No need to bit-twiddle with a mask, because with the
7082
            // SCN_ASSUME, -O3 will optimize this to a single operation
7083
37.6k
            SCN_ASSUME(begin_value < end_value);
7084
1.01M
            for (auto v = begin_value; v != end_value; ++v) {
7085
978k
                m_specs.charset_literals[v / 8] |=
7086
978k
                    static_cast<unsigned char>(1ul << (v % 8));
7087
978k
            }
7088
37.6k
        }
7089
0
        else {
7090
0
            m_specs.charset_has_nonascii = true;
7091
0
        }
7092
37.6k
    }
7093
7094
    constexpr void on_charset_inverted()
7095
0
    {
7096
0
        m_specs.charset_is_inverted = true;
7097
0
    }
7098
7099
    template <typename CharT>
7100
    constexpr void on_character_set_string(std::basic_string_view<CharT> fmt)
7101
18.8k
    {
7102
18.8k
        m_specs.charset_string_data = fmt.data();
7103
18.8k
        m_specs.charset_string_size = fmt.size();
7104
18.8k
        on_type(presentation_type::string_set);
7105
18.8k
    }
void scn::v4::detail::specs_setter::on_character_set_string<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
7101
7.56k
    {
7102
7.56k
        m_specs.charset_string_data = fmt.data();
7103
7.56k
        m_specs.charset_string_size = fmt.size();
7104
7.56k
        on_type(presentation_type::string_set);
7105
7.56k
    }
void scn::v4::detail::specs_setter::on_character_set_string<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
7101
11.2k
    {
7102
11.2k
        m_specs.charset_string_data = fmt.data();
7103
11.2k
        m_specs.charset_string_size = fmt.size();
7104
11.2k
        on_type(presentation_type::string_set);
7105
11.2k
    }
7106
7107
    template <typename CharT>
7108
    constexpr void on_regex_pattern(std::basic_string_view<CharT> pattern)
7109
0
    {
7110
0
        m_specs.charset_string_data = pattern.data();
7111
0
        m_specs.charset_string_size = pattern.size();
7112
0
    }
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_regex_pattern<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_regex_pattern<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
7113
    constexpr void on_regex_flags(regex_flags flags)
7114
0
    {
7115
0
        m_specs.regexp_flags = flags;
7116
0
    }
7117
7118
    // Intentionally not constexpr
7119
    void on_error(const char* msg)
7120
32.6k
    {
7121
32.6k
        SCN_UNLIKELY_ATTR
7122
32.6k
        m_error = unexpected_scan_error(scan_error::invalid_format_string, msg);
7123
32.6k
    }
7124
    void on_error(scan_error err)
7125
0
    {
7126
0
        SCN_UNLIKELY_ATTR
7127
0
        m_error = unexpected(err);
7128
0
    }
7129
7130
    constexpr scan_expected<void> get_error() const
7131
1.18M
    {
7132
1.18M
        return m_error;
7133
1.18M
    }
7134
7135
protected:
7136
    format_specs& m_specs;
7137
    scan_expected<void> m_error;
7138
};
7139
7140
template <typename CharT>
7141
constexpr int parse_simple_int(const CharT*& begin, const CharT* end)
7142
32.6k
{
7143
32.6k
    SCN_EXPECT(begin != end);
7144
32.6k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
7145
7146
32.6k
    unsigned long long value = 0;
7147
65.2k
    do {
7148
65.2k
        value *= 10;
7149
65.2k
        value += static_cast<unsigned long long>(*begin - '0');
7150
65.2k
        if (value >
7151
65.2k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
7152
0
            return -1;
7153
0
        }
7154
65.2k
        ++begin;
7155
65.2k
    } while (begin != end && *begin >= '0' && *begin <= '9');
7156
32.6k
    return static_cast<int>(value);
7157
32.6k
}
int scn::v4::detail::parse_simple_int<char>(char const*&, char const*)
Line
Count
Source
7142
10.8k
{
7143
10.8k
    SCN_EXPECT(begin != end);
7144
10.8k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
7145
7146
10.8k
    unsigned long long value = 0;
7147
21.7k
    do {
7148
21.7k
        value *= 10;
7149
21.7k
        value += static_cast<unsigned long long>(*begin - '0');
7150
21.7k
        if (value >
7151
21.7k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
7152
0
            return -1;
7153
0
        }
7154
21.7k
        ++begin;
7155
21.7k
    } while (begin != end && *begin >= '0' && *begin <= '9');
7156
10.8k
    return static_cast<int>(value);
7157
10.8k
}
int scn::v4::detail::parse_simple_int<wchar_t>(wchar_t const*&, wchar_t const*)
Line
Count
Source
7142
21.7k
{
7143
21.7k
    SCN_EXPECT(begin != end);
7144
21.7k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
7145
7146
21.7k
    unsigned long long value = 0;
7147
43.4k
    do {
7148
43.4k
        value *= 10;
7149
43.4k
        value += static_cast<unsigned long long>(*begin - '0');
7150
43.4k
        if (value >
7151
43.4k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
7152
0
            return -1;
7153
0
        }
7154
43.4k
        ++begin;
7155
43.4k
    } while (begin != end && *begin >= '0' && *begin <= '9');
7156
21.7k
    return static_cast<int>(value);
7157
21.7k
}
7158
7159
template <typename CharT, typename IDHandler>
7160
constexpr const CharT* do_parse_arg_id(const CharT* begin,
7161
                                       const CharT* end,
7162
                                       IDHandler&& handler)
7163
0
{
7164
0
    SCN_EXPECT(begin != end);
7165
7166
0
    CharT c = *begin;
7167
0
    if (c < CharT{'0'} || c > CharT{'9'}) {
7168
0
        handler.on_error("Invalid argument ID");
7169
0
        return begin;
7170
0
    }
7171
7172
0
    int idx = 0;
7173
0
    if (c != CharT{'0'}) {
7174
0
        idx = parse_simple_int(begin, end);
7175
0
    }
7176
0
    else {
7177
0
        ++begin;
7178
0
    }
7179
7180
0
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
7181
0
        handler.on_error("Invalid argument ID");
7182
0
        return begin;
7183
0
    }
7184
0
    handler(idx);
7185
7186
0
    return begin;
7187
0
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::do_parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&&)
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::do_parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::do_parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::do_parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&&)
7188
7189
template <typename CharT, typename IDHandler>
7190
constexpr const CharT* parse_arg_id(const CharT* begin,
7191
                                    const CharT* end,
7192
                                    IDHandler&& handler)
7193
1.12M
{
7194
1.12M
    SCN_EXPECT(begin != end);
7195
1.12M
    if (*begin != '}' && *begin != ':') {
7196
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7197
0
    }
7198
7199
1.12M
    handler();
7200
1.12M
    return begin;
7201
1.12M
}
impl.cpp:char const* scn::v4::detail::parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
7193
98.7k
{
7194
98.7k
    SCN_EXPECT(begin != end);
7195
98.7k
    if (*begin != '}' && *begin != ':') {
7196
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7197
0
    }
7198
7199
98.7k
    handler();
7200
98.7k
    return begin;
7201
98.7k
}
impl.cpp:char const* scn::v4::detail::parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&&)
Line
Count
Source
7193
58.7k
{
7194
58.7k
    SCN_EXPECT(begin != end);
7195
58.7k
    if (*begin != '}' && *begin != ':') {
7196
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7197
0
    }
7198
7199
58.7k
    handler();
7200
58.7k
    return begin;
7201
58.7k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
7193
647k
{
7194
647k
    SCN_EXPECT(begin != end);
7195
647k
    if (*begin != '}' && *begin != ':') {
7196
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7197
0
    }
7198
7199
647k
    handler();
7200
647k
    return begin;
7201
647k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&&)
Line
Count
Source
7193
323k
{
7194
323k
    SCN_EXPECT(begin != end);
7195
323k
    if (*begin != '}' && *begin != ':') {
7196
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7197
0
    }
7198
7199
323k
    handler();
7200
323k
    return begin;
7201
323k
}
7202
7203
template <typename CharT>
7204
constexpr presentation_type parse_presentation_type(CharT type)
7205
1.09M
{
7206
1.09M
    switch (type) {
7207
0
        case 'b':
7208
0
        case 'B':
7209
0
            return presentation_type::int_binary;
7210
0
        case 'd':
7211
0
            return presentation_type::int_decimal;
7212
0
        case 'i':
7213
0
            return presentation_type::int_generic;
7214
0
        case 'u':
7215
0
            return presentation_type::int_unsigned_decimal;
7216
0
        case 'o':
7217
0
            return presentation_type::int_octal;
7218
0
        case 'x':
7219
0
        case 'X':
7220
0
            return presentation_type::int_hex;
7221
0
        case 'r':
7222
0
        case 'R':
7223
0
            return presentation_type::int_arbitrary_base;
7224
0
        case 'a':
7225
0
        case 'A':
7226
0
            return presentation_type::float_hex;
7227
0
        case 'e':
7228
0
        case 'E':
7229
0
            return presentation_type::float_scientific;
7230
0
        case 'f':
7231
0
        case 'F':
7232
0
            return presentation_type::float_fixed;
7233
0
        case 'g':
7234
0
        case 'G':
7235
0
            return presentation_type::float_general;
7236
1.06M
        case 's':
7237
1.06M
            return presentation_type::string;
7238
16.3k
        case 'c':
7239
16.3k
            return presentation_type::character;
7240
0
        case '?':
7241
0
            return presentation_type::escaped_character;
7242
0
        case 'p':
7243
0
            return presentation_type::pointer;
7244
0
        case '[':
7245
0
        case '/':
7246
            // Should be handled by parse_presentation_set and
7247
            // parse_presentation_regex
7248
0
            SCN_EXPECT(false);
7249
0
            SCN_UNREACHABLE;
7250
16.3k
        default:
7251
16.3k
            return presentation_type::none;
7252
1.09M
    }
7253
1.09M
}
scn::v4::detail::presentation_type scn::v4::detail::parse_presentation_type<char>(char)
Line
Count
Source
7205
144k
{
7206
144k
    switch (type) {
7207
0
        case 'b':
7208
0
        case 'B':
7209
0
            return presentation_type::int_binary;
7210
0
        case 'd':
7211
0
            return presentation_type::int_decimal;
7212
0
        case 'i':
7213
0
            return presentation_type::int_generic;
7214
0
        case 'u':
7215
0
            return presentation_type::int_unsigned_decimal;
7216
0
        case 'o':
7217
0
            return presentation_type::int_octal;
7218
0
        case 'x':
7219
0
        case 'X':
7220
0
            return presentation_type::int_hex;
7221
0
        case 'r':
7222
0
        case 'R':
7223
0
            return presentation_type::int_arbitrary_base;
7224
0
        case 'a':
7225
0
        case 'A':
7226
0
            return presentation_type::float_hex;
7227
0
        case 'e':
7228
0
        case 'E':
7229
0
            return presentation_type::float_scientific;
7230
0
        case 'f':
7231
0
        case 'F':
7232
0
            return presentation_type::float_fixed;
7233
0
        case 'g':
7234
0
        case 'G':
7235
0
            return presentation_type::float_general;
7236
133k
        case 's':
7237
133k
            return presentation_type::string;
7238
5.43k
        case 'c':
7239
5.43k
            return presentation_type::character;
7240
0
        case '?':
7241
0
            return presentation_type::escaped_character;
7242
0
        case 'p':
7243
0
            return presentation_type::pointer;
7244
0
        case '[':
7245
0
        case '/':
7246
            // Should be handled by parse_presentation_set and
7247
            // parse_presentation_regex
7248
0
            SCN_EXPECT(false);
7249
0
            SCN_UNREACHABLE;
7250
5.43k
        default:
7251
5.43k
            return presentation_type::none;
7252
144k
    }
7253
144k
}
scn::v4::detail::presentation_type scn::v4::detail::parse_presentation_type<wchar_t>(wchar_t)
Line
Count
Source
7205
948k
{
7206
948k
    switch (type) {
7207
0
        case 'b':
7208
0
        case 'B':
7209
0
            return presentation_type::int_binary;
7210
0
        case 'd':
7211
0
            return presentation_type::int_decimal;
7212
0
        case 'i':
7213
0
            return presentation_type::int_generic;
7214
0
        case 'u':
7215
0
            return presentation_type::int_unsigned_decimal;
7216
0
        case 'o':
7217
0
            return presentation_type::int_octal;
7218
0
        case 'x':
7219
0
        case 'X':
7220
0
            return presentation_type::int_hex;
7221
0
        case 'r':
7222
0
        case 'R':
7223
0
            return presentation_type::int_arbitrary_base;
7224
0
        case 'a':
7225
0
        case 'A':
7226
0
            return presentation_type::float_hex;
7227
0
        case 'e':
7228
0
        case 'E':
7229
0
            return presentation_type::float_scientific;
7230
0
        case 'f':
7231
0
        case 'F':
7232
0
            return presentation_type::float_fixed;
7233
0
        case 'g':
7234
0
        case 'G':
7235
0
            return presentation_type::float_general;
7236
926k
        case 's':
7237
926k
            return presentation_type::string;
7238
10.8k
        case 'c':
7239
10.8k
            return presentation_type::character;
7240
0
        case '?':
7241
0
            return presentation_type::escaped_character;
7242
0
        case 'p':
7243
0
            return presentation_type::pointer;
7244
0
        case '[':
7245
0
        case '/':
7246
            // Should be handled by parse_presentation_set and
7247
            // parse_presentation_regex
7248
0
            SCN_EXPECT(false);
7249
0
            SCN_UNREACHABLE;
7250
10.8k
        default:
7251
10.8k
            return presentation_type::none;
7252
948k
    }
7253
948k
}
7254
7255
template <typename CharT>
7256
constexpr bool is_ascii_letter(CharT ch)
7257
1.07M
{
7258
1.07M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
7259
1.07M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
7260
1.07M
}
bool scn::v4::detail::is_ascii_letter<char>(char)
Line
Count
Source
7257
139k
{
7258
139k
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
7259
139k
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
7260
139k
}
bool scn::v4::detail::is_ascii_letter<wchar_t>(wchar_t)
Line
Count
Source
7257
937k
{
7258
937k
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
7259
937k
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
7260
937k
}
7261
7262
template <typename CharT>
7263
constexpr int code_point_length(const CharT* begin, const CharT* end)
7264
67.7k
{
7265
67.7k
    SCN_EXPECT(begin != end);
7266
67.7k
    if constexpr (sizeof(CharT) != 1) {
7267
43.8k
        return 1;
7268
    }
7269
23.8k
    else {
7270
23.8k
        const auto lengths =
7271
23.8k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
7272
23.8k
            "\3\4";
7273
23.8k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
7274
23.8k
        return len;
7275
23.8k
    }
7276
67.7k
}
int scn::v4::detail::code_point_length<char>(char const*, char const*)
Line
Count
Source
7264
23.8k
{
7265
23.8k
    SCN_EXPECT(begin != end);
7266
    if constexpr (sizeof(CharT) != 1) {
7267
        return 1;
7268
    }
7269
23.8k
    else {
7270
23.8k
        const auto lengths =
7271
23.8k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
7272
23.8k
            "\3\4";
7273
23.8k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
7274
23.8k
        return len;
7275
23.8k
    }
7276
23.8k
}
int scn::v4::detail::code_point_length<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
7264
43.8k
{
7265
43.8k
    SCN_EXPECT(begin != end);
7266
43.8k
    if constexpr (sizeof(CharT) != 1) {
7267
43.8k
        return 1;
7268
    }
7269
    else {
7270
        const auto lengths =
7271
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
7272
            "\3\4";
7273
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
7274
        return len;
7275
    }
7276
43.8k
}
7277
7278
template <typename CharT, typename Handler>
7279
constexpr const CharT* parse_align(const CharT* begin,
7280
                                   const CharT* end,
7281
                                   Handler&& handler)
7282
67.7k
{
7283
67.7k
    SCN_EXPECT(begin != end);
7284
7285
135k
    auto check_align = [](wchar_t ch) {
7286
135k
        switch (ch) {
7287
0
            case L'<':
7288
0
                return align_type::left;
7289
0
            case L'>':
7290
0
                return align_type::right;
7291
0
            case L'^':
7292
0
                return align_type::center;
7293
135k
            default:
7294
135k
                return align_type::none;
7295
135k
        }
7296
135k
    };
impl.cpp:scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
7285
31.8k
    auto check_align = [](wchar_t ch) {
7286
31.8k
        switch (ch) {
7287
0
            case L'<':
7288
0
                return align_type::left;
7289
0
            case L'>':
7290
0
                return align_type::right;
7291
0
            case L'^':
7292
0
                return align_type::center;
7293
31.8k
            default:
7294
31.8k
                return align_type::none;
7295
31.8k
        }
7296
31.8k
    };
impl.cpp:scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
7285
15.9k
    auto check_align = [](wchar_t ch) {
7286
15.9k
        switch (ch) {
7287
0
            case L'<':
7288
0
                return align_type::left;
7289
0
            case L'>':
7290
0
                return align_type::right;
7291
0
            case L'^':
7292
0
                return align_type::center;
7293
15.9k
            default:
7294
15.9k
                return align_type::none;
7295
15.9k
        }
7296
15.9k
    };
impl.cpp:scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
7285
58.4k
    auto check_align = [](wchar_t ch) {
7286
58.4k
        switch (ch) {
7287
0
            case L'<':
7288
0
                return align_type::left;
7289
0
            case L'>':
7290
0
                return align_type::right;
7291
0
            case L'^':
7292
0
                return align_type::center;
7293
58.4k
            default:
7294
58.4k
                return align_type::none;
7295
58.4k
        }
7296
58.4k
    };
impl.cpp:scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
7285
29.2k
    auto check_align = [](wchar_t ch) {
7286
29.2k
        switch (ch) {
7287
0
            case L'<':
7288
0
                return align_type::left;
7289
0
            case L'>':
7290
0
                return align_type::right;
7291
0
            case L'^':
7292
0
                return align_type::center;
7293
29.2k
            default:
7294
29.2k
                return align_type::none;
7295
29.2k
        }
7296
29.2k
    };
7297
7298
67.7k
    auto potential_fill_len = code_point_length(begin, end);
7299
67.7k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7300
67.7k
                     std::distance(begin, end) < potential_fill_len)) {
7301
0
        handler.on_error("Invalid encoding in fill character");
7302
0
        return begin;
7303
0
    }
7304
7305
67.7k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7306
7307
67.7k
    auto potential_fill = std::basic_string_view<CharT>{
7308
67.7k
        begin, static_cast<size_t>(potential_fill_len)};
7309
67.7k
    const auto begin_before_fill = begin;
7310
67.7k
    begin += potential_fill_len;
7311
7312
67.7k
    if (begin == end) {
7313
0
        return begin_before_fill;
7314
0
    }
7315
7316
67.7k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7317
67.7k
    const auto begin_after_fill = begin;
7318
67.7k
    ++begin;
7319
7320
67.7k
    if (potential_fill_len == 1) {
7321
67.7k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7322
0
            handler.on_error("Invalid fill character '{' in format string");
7323
0
            return begin;
7324
0
        }
7325
67.7k
        if (potential_fill[0] == '[') {
7326
18.8k
            return begin_before_fill;
7327
18.8k
        }
7328
67.7k
    }
7329
7330
48.9k
    if (potential_align_after_fill == align_type::none) {
7331
48.9k
        if (potential_align_on_fill != align_type::none) {
7332
0
            handler.on_align(potential_align_on_fill);
7333
0
            return begin_after_fill;
7334
0
        }
7335
48.9k
        return begin_before_fill;
7336
48.9k
    }
7337
7338
0
    handler.on_fill(potential_fill);
7339
0
    handler.on_align(potential_align_after_fill);
7340
0
    return begin;
7341
48.9k
}
impl.cpp:char const* scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7282
15.9k
{
7283
15.9k
    SCN_EXPECT(begin != end);
7284
7285
15.9k
    auto check_align = [](wchar_t ch) {
7286
15.9k
        switch (ch) {
7287
15.9k
            case L'<':
7288
15.9k
                return align_type::left;
7289
15.9k
            case L'>':
7290
15.9k
                return align_type::right;
7291
15.9k
            case L'^':
7292
15.9k
                return align_type::center;
7293
15.9k
            default:
7294
15.9k
                return align_type::none;
7295
15.9k
        }
7296
15.9k
    };
7297
7298
15.9k
    auto potential_fill_len = code_point_length(begin, end);
7299
15.9k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7300
15.9k
                     std::distance(begin, end) < potential_fill_len)) {
7301
0
        handler.on_error("Invalid encoding in fill character");
7302
0
        return begin;
7303
0
    }
7304
7305
15.9k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7306
7307
15.9k
    auto potential_fill = std::basic_string_view<CharT>{
7308
15.9k
        begin, static_cast<size_t>(potential_fill_len)};
7309
15.9k
    const auto begin_before_fill = begin;
7310
15.9k
    begin += potential_fill_len;
7311
7312
15.9k
    if (begin == end) {
7313
0
        return begin_before_fill;
7314
0
    }
7315
7316
15.9k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7317
15.9k
    const auto begin_after_fill = begin;
7318
15.9k
    ++begin;
7319
7320
15.9k
    if (potential_fill_len == 1) {
7321
15.9k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7322
0
            handler.on_error("Invalid fill character '{' in format string");
7323
0
            return begin;
7324
0
        }
7325
15.9k
        if (potential_fill[0] == '[') {
7326
5.04k
            return begin_before_fill;
7327
5.04k
        }
7328
15.9k
    }
7329
7330
10.8k
    if (potential_align_after_fill == align_type::none) {
7331
10.8k
        if (potential_align_on_fill != align_type::none) {
7332
0
            handler.on_align(potential_align_on_fill);
7333
0
            return begin_after_fill;
7334
0
        }
7335
10.8k
        return begin_before_fill;
7336
10.8k
    }
7337
7338
0
    handler.on_fill(potential_fill);
7339
0
    handler.on_align(potential_align_after_fill);
7340
0
    return begin;
7341
10.8k
}
impl.cpp:char const* scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7282
7.95k
{
7283
7.95k
    SCN_EXPECT(begin != end);
7284
7285
7.95k
    auto check_align = [](wchar_t ch) {
7286
7.95k
        switch (ch) {
7287
7.95k
            case L'<':
7288
7.95k
                return align_type::left;
7289
7.95k
            case L'>':
7290
7.95k
                return align_type::right;
7291
7.95k
            case L'^':
7292
7.95k
                return align_type::center;
7293
7.95k
            default:
7294
7.95k
                return align_type::none;
7295
7.95k
        }
7296
7.95k
    };
7297
7298
7.95k
    auto potential_fill_len = code_point_length(begin, end);
7299
7.95k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7300
7.95k
                     std::distance(begin, end) < potential_fill_len)) {
7301
0
        handler.on_error("Invalid encoding in fill character");
7302
0
        return begin;
7303
0
    }
7304
7305
7.95k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7306
7307
7.95k
    auto potential_fill = std::basic_string_view<CharT>{
7308
7.95k
        begin, static_cast<size_t>(potential_fill_len)};
7309
7.95k
    const auto begin_before_fill = begin;
7310
7.95k
    begin += potential_fill_len;
7311
7312
7.95k
    if (begin == end) {
7313
0
        return begin_before_fill;
7314
0
    }
7315
7316
7.95k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7317
7.95k
    const auto begin_after_fill = begin;
7318
7.95k
    ++begin;
7319
7320
7.95k
    if (potential_fill_len == 1) {
7321
7.95k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7322
0
            handler.on_error("Invalid fill character '{' in format string");
7323
0
            return begin;
7324
0
        }
7325
7.95k
        if (potential_fill[0] == '[') {
7326
2.52k
            return begin_before_fill;
7327
2.52k
        }
7328
7.95k
    }
7329
7330
5.43k
    if (potential_align_after_fill == align_type::none) {
7331
5.43k
        if (potential_align_on_fill != align_type::none) {
7332
0
            handler.on_align(potential_align_on_fill);
7333
0
            return begin_after_fill;
7334
0
        }
7335
5.43k
        return begin_before_fill;
7336
5.43k
    }
7337
7338
0
    handler.on_fill(potential_fill);
7339
0
    handler.on_align(potential_align_after_fill);
7340
0
    return begin;
7341
5.43k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7282
29.2k
{
7283
29.2k
    SCN_EXPECT(begin != end);
7284
7285
29.2k
    auto check_align = [](wchar_t ch) {
7286
29.2k
        switch (ch) {
7287
29.2k
            case L'<':
7288
29.2k
                return align_type::left;
7289
29.2k
            case L'>':
7290
29.2k
                return align_type::right;
7291
29.2k
            case L'^':
7292
29.2k
                return align_type::center;
7293
29.2k
            default:
7294
29.2k
                return align_type::none;
7295
29.2k
        }
7296
29.2k
    };
7297
7298
29.2k
    auto potential_fill_len = code_point_length(begin, end);
7299
29.2k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7300
29.2k
                     std::distance(begin, end) < potential_fill_len)) {
7301
0
        handler.on_error("Invalid encoding in fill character");
7302
0
        return begin;
7303
0
    }
7304
7305
29.2k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7306
7307
29.2k
    auto potential_fill = std::basic_string_view<CharT>{
7308
29.2k
        begin, static_cast<size_t>(potential_fill_len)};
7309
29.2k
    const auto begin_before_fill = begin;
7310
29.2k
    begin += potential_fill_len;
7311
7312
29.2k
    if (begin == end) {
7313
0
        return begin_before_fill;
7314
0
    }
7315
7316
29.2k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7317
29.2k
    const auto begin_after_fill = begin;
7318
29.2k
    ++begin;
7319
7320
29.2k
    if (potential_fill_len == 1) {
7321
29.2k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7322
0
            handler.on_error("Invalid fill character '{' in format string");
7323
0
            return begin;
7324
0
        }
7325
29.2k
        if (potential_fill[0] == '[') {
7326
7.50k
            return begin_before_fill;
7327
7.50k
        }
7328
29.2k
    }
7329
7330
21.7k
    if (potential_align_after_fill == align_type::none) {
7331
21.7k
        if (potential_align_on_fill != align_type::none) {
7332
0
            handler.on_align(potential_align_on_fill);
7333
0
            return begin_after_fill;
7334
0
        }
7335
21.7k
        return begin_before_fill;
7336
21.7k
    }
7337
7338
0
    handler.on_fill(potential_fill);
7339
0
    handler.on_align(potential_align_after_fill);
7340
0
    return begin;
7341
21.7k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7282
14.6k
{
7283
14.6k
    SCN_EXPECT(begin != end);
7284
7285
14.6k
    auto check_align = [](wchar_t ch) {
7286
14.6k
        switch (ch) {
7287
14.6k
            case L'<':
7288
14.6k
                return align_type::left;
7289
14.6k
            case L'>':
7290
14.6k
                return align_type::right;
7291
14.6k
            case L'^':
7292
14.6k
                return align_type::center;
7293
14.6k
            default:
7294
14.6k
                return align_type::none;
7295
14.6k
        }
7296
14.6k
    };
7297
7298
14.6k
    auto potential_fill_len = code_point_length(begin, end);
7299
14.6k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7300
14.6k
                     std::distance(begin, end) < potential_fill_len)) {
7301
0
        handler.on_error("Invalid encoding in fill character");
7302
0
        return begin;
7303
0
    }
7304
7305
14.6k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7306
7307
14.6k
    auto potential_fill = std::basic_string_view<CharT>{
7308
14.6k
        begin, static_cast<size_t>(potential_fill_len)};
7309
14.6k
    const auto begin_before_fill = begin;
7310
14.6k
    begin += potential_fill_len;
7311
7312
14.6k
    if (begin == end) {
7313
0
        return begin_before_fill;
7314
0
    }
7315
7316
14.6k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7317
14.6k
    const auto begin_after_fill = begin;
7318
14.6k
    ++begin;
7319
7320
14.6k
    if (potential_fill_len == 1) {
7321
14.6k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7322
0
            handler.on_error("Invalid fill character '{' in format string");
7323
0
            return begin;
7324
0
        }
7325
14.6k
        if (potential_fill[0] == '[') {
7326
3.75k
            return begin_before_fill;
7327
3.75k
        }
7328
14.6k
    }
7329
7330
10.8k
    if (potential_align_after_fill == align_type::none) {
7331
10.8k
        if (potential_align_on_fill != align_type::none) {
7332
0
            handler.on_align(potential_align_on_fill);
7333
0
            return begin_after_fill;
7334
0
        }
7335
10.8k
        return begin_before_fill;
7336
10.8k
    }
7337
7338
0
    handler.on_fill(potential_fill);
7339
0
    handler.on_align(potential_align_after_fill);
7340
0
    return begin;
7341
10.8k
}
7342
7343
template <typename CharT, typename Handler>
7344
constexpr const CharT* parse_width(const CharT* begin,
7345
                                   const CharT* end,
7346
                                   Handler&& handler)
7347
67.7k
{
7348
67.7k
    SCN_EXPECT(begin != end);
7349
7350
67.7k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7351
32.6k
        int width = parse_simple_int(begin, end);
7352
32.6k
        if (SCN_LIKELY(width != -1)) {
7353
32.6k
            handler.on_width(width);
7354
32.6k
        }
7355
0
        else {
7356
0
            handler.on_error("Invalid field width");
7357
0
            return begin;
7358
0
        }
7359
32.6k
    }
7360
67.7k
    return begin;
7361
67.7k
}
impl.cpp:char const* scn::v4::detail::parse_width<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7347
15.9k
{
7348
15.9k
    SCN_EXPECT(begin != end);
7349
7350
15.9k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7351
7.24k
        int width = parse_simple_int(begin, end);
7352
7.24k
        if (SCN_LIKELY(width != -1)) {
7353
7.24k
            handler.on_width(width);
7354
7.24k
        }
7355
0
        else {
7356
0
            handler.on_error("Invalid field width");
7357
0
            return begin;
7358
0
        }
7359
7.24k
    }
7360
15.9k
    return begin;
7361
15.9k
}
impl.cpp:char const* scn::v4::detail::parse_width<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7347
7.95k
{
7348
7.95k
    SCN_EXPECT(begin != end);
7349
7350
7.95k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7351
3.62k
        int width = parse_simple_int(begin, end);
7352
3.62k
        if (SCN_LIKELY(width != -1)) {
7353
3.62k
            handler.on_width(width);
7354
3.62k
        }
7355
0
        else {
7356
0
            handler.on_error("Invalid field width");
7357
0
            return begin;
7358
0
        }
7359
3.62k
    }
7360
7.95k
    return begin;
7361
7.95k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_width<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7347
29.2k
{
7348
29.2k
    SCN_EXPECT(begin != end);
7349
7350
29.2k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7351
14.4k
        int width = parse_simple_int(begin, end);
7352
14.4k
        if (SCN_LIKELY(width != -1)) {
7353
14.4k
            handler.on_width(width);
7354
14.4k
        }
7355
0
        else {
7356
0
            handler.on_error("Invalid field width");
7357
0
            return begin;
7358
0
        }
7359
14.4k
    }
7360
29.2k
    return begin;
7361
29.2k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_width<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7347
14.6k
{
7348
14.6k
    SCN_EXPECT(begin != end);
7349
7350
14.6k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7351
7.24k
        int width = parse_simple_int(begin, end);
7352
7.24k
        if (SCN_LIKELY(width != -1)) {
7353
7.24k
            handler.on_width(width);
7354
7.24k
        }
7355
0
        else {
7356
0
            handler.on_error("Invalid field width");
7357
0
            return begin;
7358
0
        }
7359
7.24k
    }
7360
14.6k
    return begin;
7361
14.6k
}
7362
7363
template <typename CharT, typename Handler>
7364
constexpr const CharT* parse_precision(const CharT* begin,
7365
                                       const CharT* end,
7366
                                       Handler&& handler)
7367
0
{
7368
0
    SCN_EXPECT(begin != end);
7369
7370
0
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7371
0
        int prec = parse_simple_int(begin, end);
7372
0
        if (SCN_LIKELY(prec != -1)) {
7373
0
            handler.on_precision(prec);
7374
0
        }
7375
0
        else {
7376
0
            handler.on_error("Invalid field precision");
7377
0
            return begin;
7378
0
        }
7379
0
    }
7380
0
    return begin;
7381
0
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_precision<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_precision<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_precision<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_precision<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7382
7383
template <typename CharT, typename SpecHandler>
7384
constexpr char32_t parse_presentation_set_code_point(const CharT*& begin,
7385
                                                     const CharT* end,
7386
                                                     SpecHandler&& handler)
7387
75.2k
{
7388
75.2k
    SCN_EXPECT(begin != end);
7389
7390
75.2k
    auto len = code_point_length_by_starting_code_unit(*begin);
7391
75.2k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7392
0
        handler.on_error("Invalid encoding in format string");
7393
0
        return invalid_code_point;
7394
0
    }
7395
7396
75.2k
    const auto cp =
7397
75.2k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7398
75.2k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7399
0
        handler.on_error("Invalid encoding in format string");
7400
0
        return invalid_code_point;
7401
0
    }
7402
7403
75.2k
    begin += len;
7404
75.2k
    return cp;
7405
75.2k
}
Unexecuted instantiation: char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Unexecuted instantiation: char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7387
20.1k
{
7388
20.1k
    SCN_EXPECT(begin != end);
7389
7390
20.1k
    auto len = code_point_length_by_starting_code_unit(*begin);
7391
20.1k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7392
0
        handler.on_error("Invalid encoding in format string");
7393
0
        return invalid_code_point;
7394
0
    }
7395
7396
20.1k
    const auto cp =
7397
20.1k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7398
20.1k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7399
0
        handler.on_error("Invalid encoding in format string");
7400
0
        return invalid_code_point;
7401
0
    }
7402
7403
20.1k
    begin += len;
7404
20.1k
    return cp;
7405
20.1k
}
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7387
10.0k
{
7388
10.0k
    SCN_EXPECT(begin != end);
7389
7390
10.0k
    auto len = code_point_length_by_starting_code_unit(*begin);
7391
10.0k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7392
0
        handler.on_error("Invalid encoding in format string");
7393
0
        return invalid_code_point;
7394
0
    }
7395
7396
10.0k
    const auto cp =
7397
10.0k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7398
10.0k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7399
0
        handler.on_error("Invalid encoding in format string");
7400
0
        return invalid_code_point;
7401
0
    }
7402
7403
10.0k
    begin += len;
7404
10.0k
    return cp;
7405
10.0k
}
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7387
30.0k
{
7388
30.0k
    SCN_EXPECT(begin != end);
7389
7390
30.0k
    auto len = code_point_length_by_starting_code_unit(*begin);
7391
30.0k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7392
0
        handler.on_error("Invalid encoding in format string");
7393
0
        return invalid_code_point;
7394
0
    }
7395
7396
30.0k
    const auto cp =
7397
30.0k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7398
30.0k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7399
0
        handler.on_error("Invalid encoding in format string");
7400
0
        return invalid_code_point;
7401
0
    }
7402
7403
30.0k
    begin += len;
7404
30.0k
    return cp;
7405
30.0k
}
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7387
15.0k
{
7388
15.0k
    SCN_EXPECT(begin != end);
7389
7390
15.0k
    auto len = code_point_length_by_starting_code_unit(*begin);
7391
15.0k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7392
0
        handler.on_error("Invalid encoding in format string");
7393
0
        return invalid_code_point;
7394
0
    }
7395
7396
15.0k
    const auto cp =
7397
15.0k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7398
15.0k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7399
0
        handler.on_error("Invalid encoding in format string");
7400
0
        return invalid_code_point;
7401
0
    }
7402
7403
15.0k
    begin += len;
7404
15.0k
    return cp;
7405
15.0k
}
7406
7407
template <typename CharT, typename SpecHandler>
7408
constexpr void parse_presentation_set_literal(const CharT*& begin,
7409
                                              const CharT* end,
7410
                                              SpecHandler&& handler)
7411
37.6k
{
7412
37.6k
    SCN_EXPECT(begin != end);
7413
7414
37.6k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7415
37.6k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7416
0
        return;
7417
0
    }
7418
7419
37.6k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7420
37.6k
        *(begin + 1) != CharT{']'}) {
7421
37.6k
        ++begin;
7422
7423
37.6k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7424
37.6k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7425
0
            return;
7426
0
        }
7427
7428
37.6k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7429
            // clang-format off
7430
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7431
            // clang-format on
7432
0
            return;
7433
0
        }
7434
7435
37.6k
        handler.on_charset_range(cp_first, cp_second + 1);
7436
37.6k
        return;
7437
37.6k
    }
7438
7439
0
    handler.on_charset_single(cp_first);
7440
0
}
Unexecuted instantiation: void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Unexecuted instantiation: void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7411
10.0k
{
7412
10.0k
    SCN_EXPECT(begin != end);
7413
7414
10.0k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7415
10.0k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7416
0
        return;
7417
0
    }
7418
7419
10.0k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7420
10.0k
        *(begin + 1) != CharT{']'}) {
7421
10.0k
        ++begin;
7422
7423
10.0k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7424
10.0k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7425
0
            return;
7426
0
        }
7427
7428
10.0k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7429
            // clang-format off
7430
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7431
            // clang-format on
7432
0
            return;
7433
0
        }
7434
7435
10.0k
        handler.on_charset_range(cp_first, cp_second + 1);
7436
10.0k
        return;
7437
10.0k
    }
7438
7439
0
    handler.on_charset_single(cp_first);
7440
0
}
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7411
5.04k
{
7412
5.04k
    SCN_EXPECT(begin != end);
7413
7414
5.04k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7415
5.04k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7416
0
        return;
7417
0
    }
7418
7419
5.04k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7420
5.04k
        *(begin + 1) != CharT{']'}) {
7421
5.04k
        ++begin;
7422
7423
5.04k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7424
5.04k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7425
0
            return;
7426
0
        }
7427
7428
5.04k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7429
            // clang-format off
7430
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7431
            // clang-format on
7432
0
            return;
7433
0
        }
7434
7435
5.04k
        handler.on_charset_range(cp_first, cp_second + 1);
7436
5.04k
        return;
7437
5.04k
    }
7438
7439
0
    handler.on_charset_single(cp_first);
7440
0
}
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7411
15.0k
{
7412
15.0k
    SCN_EXPECT(begin != end);
7413
7414
15.0k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7415
15.0k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7416
0
        return;
7417
0
    }
7418
7419
15.0k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7420
15.0k
        *(begin + 1) != CharT{']'}) {
7421
15.0k
        ++begin;
7422
7423
15.0k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7424
15.0k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7425
0
            return;
7426
0
        }
7427
7428
15.0k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7429
            // clang-format off
7430
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7431
            // clang-format on
7432
0
            return;
7433
0
        }
7434
7435
15.0k
        handler.on_charset_range(cp_first, cp_second + 1);
7436
15.0k
        return;
7437
15.0k
    }
7438
7439
0
    handler.on_charset_single(cp_first);
7440
0
}
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7411
7.50k
{
7412
7.50k
    SCN_EXPECT(begin != end);
7413
7414
7.50k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7415
7.50k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7416
0
        return;
7417
0
    }
7418
7419
7.50k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7420
7.50k
        *(begin + 1) != CharT{']'}) {
7421
7.50k
        ++begin;
7422
7423
7.50k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7424
7.50k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7425
0
            return;
7426
0
        }
7427
7428
7.50k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7429
            // clang-format off
7430
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7431
            // clang-format on
7432
0
            return;
7433
0
        }
7434
7435
7.50k
        handler.on_charset_range(cp_first, cp_second + 1);
7436
7.50k
        return;
7437
7.50k
    }
7438
7439
0
    handler.on_charset_single(cp_first);
7440
0
}
7441
7442
template <typename CharT, typename SpecHandler>
7443
constexpr std::basic_string_view<CharT> parse_presentation_set(
7444
    const CharT*& begin,
7445
    const CharT* end,
7446
    SpecHandler&& handler)
7447
18.8k
{
7448
18.8k
    SCN_EXPECT(begin != end);
7449
18.8k
    SCN_EXPECT(*begin == CharT{'['});
7450
7451
18.8k
    auto start = begin;
7452
18.8k
    ++begin;
7453
7454
18.8k
    if (SCN_UNLIKELY(begin == end)) {
7455
        // clang-format off
7456
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7457
        // clang-format on
7458
0
        return {};
7459
0
    }
7460
18.8k
    if (*begin == CharT{'^'}) {
7461
0
        handler.on_charset_inverted();
7462
0
        ++begin;
7463
0
        if (SCN_UNLIKELY(begin == end)) {
7464
            // clang-format off
7465
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7466
            // clang-format on
7467
0
            return {};
7468
0
        }
7469
0
        if (*begin == CharT{']'}) {
7470
0
            handler.on_charset_single(char32_t{']'});
7471
0
            ++begin;
7472
0
        }
7473
0
    }
7474
18.8k
    else if (*begin == CharT{']'}) {
7475
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7476
0
    }
7477
7478
56.4k
    while (begin != end) {
7479
56.4k
        if (SCN_UNLIKELY(!handler.get_error())) {
7480
0
            break;
7481
0
        }
7482
7483
56.4k
        if (*begin == CharT{']'}) {
7484
18.8k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7485
18.8k
        }
7486
7487
37.6k
        parse_presentation_set_literal(begin, end, handler);
7488
37.6k
    }
7489
7490
0
    SCN_UNLIKELY_ATTR
7491
0
    handler.on_error("Invalid [character set] specifier in format string");
7492
0
    return {};
7493
18.8k
}
Unexecuted instantiation: std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7447
5.04k
{
7448
5.04k
    SCN_EXPECT(begin != end);
7449
5.04k
    SCN_EXPECT(*begin == CharT{'['});
7450
7451
5.04k
    auto start = begin;
7452
5.04k
    ++begin;
7453
7454
5.04k
    if (SCN_UNLIKELY(begin == end)) {
7455
        // clang-format off
7456
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7457
        // clang-format on
7458
0
        return {};
7459
0
    }
7460
5.04k
    if (*begin == CharT{'^'}) {
7461
0
        handler.on_charset_inverted();
7462
0
        ++begin;
7463
0
        if (SCN_UNLIKELY(begin == end)) {
7464
            // clang-format off
7465
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7466
            // clang-format on
7467
0
            return {};
7468
0
        }
7469
0
        if (*begin == CharT{']'}) {
7470
0
            handler.on_charset_single(char32_t{']'});
7471
0
            ++begin;
7472
0
        }
7473
0
    }
7474
5.04k
    else if (*begin == CharT{']'}) {
7475
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7476
0
    }
7477
7478
15.1k
    while (begin != end) {
7479
15.1k
        if (SCN_UNLIKELY(!handler.get_error())) {
7480
0
            break;
7481
0
        }
7482
7483
15.1k
        if (*begin == CharT{']'}) {
7484
5.04k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7485
5.04k
        }
7486
7487
10.0k
        parse_presentation_set_literal(begin, end, handler);
7488
10.0k
    }
7489
7490
0
    SCN_UNLIKELY_ATTR
7491
0
    handler.on_error("Invalid [character set] specifier in format string");
7492
0
    return {};
7493
5.04k
}
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7447
2.52k
{
7448
2.52k
    SCN_EXPECT(begin != end);
7449
2.52k
    SCN_EXPECT(*begin == CharT{'['});
7450
7451
2.52k
    auto start = begin;
7452
2.52k
    ++begin;
7453
7454
2.52k
    if (SCN_UNLIKELY(begin == end)) {
7455
        // clang-format off
7456
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7457
        // clang-format on
7458
0
        return {};
7459
0
    }
7460
2.52k
    if (*begin == CharT{'^'}) {
7461
0
        handler.on_charset_inverted();
7462
0
        ++begin;
7463
0
        if (SCN_UNLIKELY(begin == end)) {
7464
            // clang-format off
7465
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7466
            // clang-format on
7467
0
            return {};
7468
0
        }
7469
0
        if (*begin == CharT{']'}) {
7470
0
            handler.on_charset_single(char32_t{']'});
7471
0
            ++begin;
7472
0
        }
7473
0
    }
7474
2.52k
    else if (*begin == CharT{']'}) {
7475
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7476
0
    }
7477
7478
7.56k
    while (begin != end) {
7479
7.56k
        if (SCN_UNLIKELY(!handler.get_error())) {
7480
0
            break;
7481
0
        }
7482
7483
7.56k
        if (*begin == CharT{']'}) {
7484
2.52k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7485
2.52k
        }
7486
7487
5.04k
        parse_presentation_set_literal(begin, end, handler);
7488
5.04k
    }
7489
7490
0
    SCN_UNLIKELY_ATTR
7491
0
    handler.on_error("Invalid [character set] specifier in format string");
7492
0
    return {};
7493
2.52k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7447
7.50k
{
7448
7.50k
    SCN_EXPECT(begin != end);
7449
7.50k
    SCN_EXPECT(*begin == CharT{'['});
7450
7451
7.50k
    auto start = begin;
7452
7.50k
    ++begin;
7453
7454
7.50k
    if (SCN_UNLIKELY(begin == end)) {
7455
        // clang-format off
7456
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7457
        // clang-format on
7458
0
        return {};
7459
0
    }
7460
7.50k
    if (*begin == CharT{'^'}) {
7461
0
        handler.on_charset_inverted();
7462
0
        ++begin;
7463
0
        if (SCN_UNLIKELY(begin == end)) {
7464
            // clang-format off
7465
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7466
            // clang-format on
7467
0
            return {};
7468
0
        }
7469
0
        if (*begin == CharT{']'}) {
7470
0
            handler.on_charset_single(char32_t{']'});
7471
0
            ++begin;
7472
0
        }
7473
0
    }
7474
7.50k
    else if (*begin == CharT{']'}) {
7475
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7476
0
    }
7477
7478
22.5k
    while (begin != end) {
7479
22.5k
        if (SCN_UNLIKELY(!handler.get_error())) {
7480
0
            break;
7481
0
        }
7482
7483
22.5k
        if (*begin == CharT{']'}) {
7484
7.50k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7485
7.50k
        }
7486
7487
15.0k
        parse_presentation_set_literal(begin, end, handler);
7488
15.0k
    }
7489
7490
0
    SCN_UNLIKELY_ATTR
7491
0
    handler.on_error("Invalid [character set] specifier in format string");
7492
0
    return {};
7493
7.50k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7447
3.75k
{
7448
3.75k
    SCN_EXPECT(begin != end);
7449
3.75k
    SCN_EXPECT(*begin == CharT{'['});
7450
7451
3.75k
    auto start = begin;
7452
3.75k
    ++begin;
7453
7454
3.75k
    if (SCN_UNLIKELY(begin == end)) {
7455
        // clang-format off
7456
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7457
        // clang-format on
7458
0
        return {};
7459
0
    }
7460
3.75k
    if (*begin == CharT{'^'}) {
7461
0
        handler.on_charset_inverted();
7462
0
        ++begin;
7463
0
        if (SCN_UNLIKELY(begin == end)) {
7464
            // clang-format off
7465
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7466
            // clang-format on
7467
0
            return {};
7468
0
        }
7469
0
        if (*begin == CharT{']'}) {
7470
0
            handler.on_charset_single(char32_t{']'});
7471
0
            ++begin;
7472
0
        }
7473
0
    }
7474
3.75k
    else if (*begin == CharT{']'}) {
7475
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7476
0
    }
7477
7478
11.2k
    while (begin != end) {
7479
11.2k
        if (SCN_UNLIKELY(!handler.get_error())) {
7480
0
            break;
7481
0
        }
7482
7483
11.2k
        if (*begin == CharT{']'}) {
7484
3.75k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7485
3.75k
        }
7486
7487
7.50k
        parse_presentation_set_literal(begin, end, handler);
7488
7.50k
    }
7489
7490
0
    SCN_UNLIKELY_ATTR
7491
0
    handler.on_error("Invalid [character set] specifier in format string");
7492
0
    return {};
7493
3.75k
}
7494
7495
template <typename CharT, typename SpecHandler>
7496
constexpr const CharT* parse_presentation_regex(const CharT*& begin,
7497
                                                const CharT* end,
7498
                                                SpecHandler&& handler)
7499
0
{
7500
0
#if !SCN_DISABLE_REGEX
7501
0
    SCN_EXPECT(begin != end);
7502
0
    SCN_EXPECT(*begin == CharT{'/'});
7503
7504
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
7505
0
                  std::is_same_v<CharT, wchar_t>) {
7506
0
        handler.on_error("Regex backend doesn't support wide strings as input");
7507
0
        return begin;
7508
0
    }
7509
7510
0
    auto start = begin;
7511
0
    ++begin;
7512
7513
0
    if (SCN_UNLIKELY(begin == end)) {
7514
0
        handler.on_error("Unexpected end of regex in format string");
7515
0
        return begin;
7516
0
    }
7517
7518
0
    handler.on_type(presentation_type::regex);
7519
0
    for (; begin != end; ++begin) {
7520
0
        if (*begin == CharT{'/'}) {
7521
0
            if (*(begin - 1) != CharT{'\\'}) {
7522
0
                break;
7523
0
            }
7524
0
            else {
7525
0
                handler.on_type(presentation_type::regex_escaped);
7526
0
            }
7527
0
        }
7528
0
    }
7529
0
    if (SCN_UNLIKELY(begin == end)) {
7530
0
        handler.on_error("Unexpected end of regex in format string");
7531
0
        return begin;
7532
0
    }
7533
7534
0
    auto regex_end = begin;
7535
0
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
7536
0
    if (SCN_UNLIKELY(regex_pattern.empty())) {
7537
0
        handler.on_error("Invalid (empty) regex in format string");
7538
0
        return begin;
7539
0
    }
7540
0
    handler.on_regex_pattern(regex_pattern);
7541
0
    ++begin;
7542
7543
0
    if (SCN_UNLIKELY(begin == end)) {
7544
0
        handler.on_error("Unexpected end of regex in format string");
7545
0
        return begin;
7546
0
    }
7547
7548
0
    regex_flags flags{regex_flags::none};
7549
0
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
7550
0
        {{'m', regex_flags::multiline},
7551
0
         {'s', regex_flags::singleline},
7552
0
         {'i', regex_flags::nocase},
7553
0
         {'n', regex_flags::nocapture}}};
7554
0
    for (; begin != end; ++begin) {
7555
0
        if (*begin == CharT{'}'}) {
7556
0
            break;
7557
0
        }
7558
0
        bool found_flag = false;
7559
0
        for (auto flag : flag_map) {
7560
0
            if (static_cast<CharT>(flag.first) != *begin) {
7561
0
                continue;
7562
0
            }
7563
0
            if ((flags & flag.second) != regex_flags::none) {
7564
0
                handler.on_error("Flag set multiple times in regex");
7565
0
                return begin;
7566
0
            }
7567
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
7568
            if (*begin == CharT{'s'}) {
7569
                // clang-format off
7570
                handler.on_error("/s flag for regex isn't supported by regex backend");
7571
                // clang-format on
7572
            }
7573
#if !SCN_HAS_STD_REGEX_MULTILINE
7574
            if (*begin == CharT{'m'}) {
7575
                // clang-format off
7576
                handler.on_error("/m flag for regex isn't supported by regex backend");
7577
                // clang-format on
7578
            }
7579
#endif
7580
#endif
7581
0
            flags |= flag.second;
7582
0
            found_flag = true;
7583
0
            break;
7584
0
        }
7585
0
        if (!found_flag) {
7586
0
            handler.on_error("Invalid flag in regex");
7587
0
            return begin;
7588
0
        }
7589
0
    }
7590
0
    handler.on_regex_flags(flags);
7591
7592
0
    if (SCN_UNLIKELY(begin == end)) {
7593
0
        handler.on_error("Unexpected end of regex in format string");
7594
0
        return begin;
7595
0
    }
7596
7597
0
    return begin;
7598
#else
7599
    handler.on_error("Regular expression support is disabled");
7600
    return {};
7601
#endif
7602
0
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_presentation_regex<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_presentation_regex<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_presentation_regex<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_presentation_regex<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7603
7604
template <typename CharT, typename SpecHandler>
7605
constexpr const CharT* parse_format_specs(const CharT* begin,
7606
                                          const CharT* end,
7607
                                          SpecHandler&& handler)
7608
1.12M
{
7609
1.12M
    auto do_presentation = [&]() -> const CharT* {
7610
1.11M
        if (*begin == CharT{'['}) {
7611
18.8k
            auto set = parse_presentation_set(begin, end, handler);
7612
18.8k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
0
                return begin;
7617
0
            }
7618
18.8k
            handler.on_character_set_string(set);
7619
18.8k
            return begin;
7620
18.8k
        }
7621
1.09M
        if (*begin == CharT{'/'}) {
7622
0
            return parse_presentation_regex(begin, end, handler);
7623
0
        }
7624
1.09M
        presentation_type type = parse_presentation_type(*begin++);
7625
1.09M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
16.3k
            handler.on_error("Invalid type specifier in format string");
7627
16.3k
            return begin;
7628
16.3k
        }
7629
1.07M
        handler.on_type(type);
7630
1.07M
        return begin;
7631
1.09M
    };
impl.cpp:scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7609
95.1k
    auto do_presentation = [&]() -> const CharT* {
7610
95.1k
        if (*begin == CharT{'['}) {
7611
5.04k
            auto set = parse_presentation_set(begin, end, handler);
7612
5.04k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
0
                return begin;
7617
0
            }
7618
5.04k
            handler.on_character_set_string(set);
7619
5.04k
            return begin;
7620
5.04k
        }
7621
90.0k
        if (*begin == CharT{'/'}) {
7622
0
            return parse_presentation_regex(begin, end, handler);
7623
0
        }
7624
90.0k
        presentation_type type = parse_presentation_type(*begin++);
7625
90.0k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
3.62k
            handler.on_error("Invalid type specifier in format string");
7627
3.62k
            return begin;
7628
3.62k
        }
7629
86.4k
        handler.on_type(type);
7630
86.4k
        return begin;
7631
90.0k
    };
impl.cpp:scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7609
56.9k
    auto do_presentation = [&]() -> const CharT* {
7610
56.9k
        if (*begin == CharT{'['}) {
7611
2.52k
            auto set = parse_presentation_set(begin, end, handler);
7612
2.52k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
0
                return begin;
7617
0
            }
7618
2.52k
            handler.on_character_set_string(set);
7619
2.52k
            return begin;
7620
2.52k
        }
7621
54.3k
        if (*begin == CharT{'/'}) {
7622
0
            return parse_presentation_regex(begin, end, handler);
7623
0
        }
7624
54.3k
        presentation_type type = parse_presentation_type(*begin++);
7625
54.3k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
1.81k
            handler.on_error("Invalid type specifier in format string");
7627
1.81k
            return begin;
7628
1.81k
        }
7629
52.5k
        handler.on_type(type);
7630
52.5k
        return begin;
7631
54.3k
    };
impl.cpp:scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7609
639k
    auto do_presentation = [&]() -> const CharT* {
7610
639k
        if (*begin == CharT{'['}) {
7611
7.50k
            auto set = parse_presentation_set(begin, end, handler);
7612
7.50k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
0
                return begin;
7617
0
            }
7618
7.50k
            handler.on_character_set_string(set);
7619
7.50k
            return begin;
7620
7.50k
        }
7621
632k
        if (*begin == CharT{'/'}) {
7622
0
            return parse_presentation_regex(begin, end, handler);
7623
0
        }
7624
632k
        presentation_type type = parse_presentation_type(*begin++);
7625
632k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
7.24k
            handler.on_error("Invalid type specifier in format string");
7627
7.24k
            return begin;
7628
7.24k
        }
7629
625k
        handler.on_type(type);
7630
625k
        return begin;
7631
632k
    };
impl.cpp:scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7609
319k
    auto do_presentation = [&]() -> const CharT* {
7610
319k
        if (*begin == CharT{'['}) {
7611
3.75k
            auto set = parse_presentation_set(begin, end, handler);
7612
3.75k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
0
                return begin;
7617
0
            }
7618
3.75k
            handler.on_character_set_string(set);
7619
3.75k
            return begin;
7620
3.75k
        }
7621
316k
        if (*begin == CharT{'/'}) {
7622
0
            return parse_presentation_regex(begin, end, handler);
7623
0
        }
7624
316k
        presentation_type type = parse_presentation_type(*begin++);
7625
316k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
3.62k
            handler.on_error("Invalid type specifier in format string");
7627
3.62k
            return begin;
7628
3.62k
        }
7629
312k
        handler.on_type(type);
7630
312k
        return begin;
7631
316k
    };
7632
7633
1.12M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7634
1.12M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7635
1.06M
        return do_presentation();
7636
1.06M
    }
7637
7638
67.7k
    if (SCN_UNLIKELY(begin == end)) {
7639
0
        handler.on_error("Unexpected end of format string");
7640
0
        return begin;
7641
0
    }
7642
7643
67.7k
    begin = parse_align(begin, end, handler);
7644
67.7k
    if (SCN_UNLIKELY(begin == end)) {
7645
0
        handler.on_error("Unexpected end of format string");
7646
0
        return begin;
7647
0
    }
7648
7649
67.7k
    begin = parse_width(begin, end, handler);
7650
67.7k
    if (SCN_UNLIKELY(begin == end)) {
7651
0
        handler.on_error("Unexpected end of format string");
7652
0
        return begin;
7653
0
    }
7654
7655
67.7k
    if (*begin == CharT{'.'}) {
7656
0
        ++begin;
7657
0
        if (SCN_UNLIKELY(begin == end)) {
7658
0
            handler.on_error("Unexpected end of format string");
7659
0
            return begin;
7660
0
        }
7661
0
        begin = parse_precision(begin, end, handler);
7662
0
        if (SCN_UNLIKELY(begin == end)) {
7663
0
            handler.on_error("Unexpected end of format string");
7664
0
            return begin;
7665
0
        }
7666
0
    }
7667
7668
67.7k
    if (*begin == CharT{'L'}) {
7669
16.3k
        handler.on_localized();
7670
16.3k
        ++begin;
7671
16.3k
    }
7672
67.7k
    if (SCN_UNLIKELY(begin == end)) {
7673
0
        handler.on_error("Unexpected end of format string");
7674
0
        return begin;
7675
0
    }
7676
7677
67.7k
    if (begin != end && *begin != CharT{'}'}) {
7678
51.4k
        do_presentation();
7679
51.4k
    }
7680
67.7k
    if (SCN_UNLIKELY(begin == end)) {
7681
0
        handler.on_error("Unexpected end of format string");
7682
0
        return begin;
7683
0
    }
7684
7685
67.7k
    return begin;
7686
67.7k
}
impl.cpp:char const* scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7608
98.7k
{
7609
98.7k
    auto do_presentation = [&]() -> const CharT* {
7610
98.7k
        if (*begin == CharT{'['}) {
7611
98.7k
            auto set = parse_presentation_set(begin, end, handler);
7612
98.7k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
98.7k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
98.7k
                return begin;
7617
98.7k
            }
7618
98.7k
            handler.on_character_set_string(set);
7619
98.7k
            return begin;
7620
98.7k
        }
7621
98.7k
        if (*begin == CharT{'/'}) {
7622
98.7k
            return parse_presentation_regex(begin, end, handler);
7623
98.7k
        }
7624
98.7k
        presentation_type type = parse_presentation_type(*begin++);
7625
98.7k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
98.7k
            handler.on_error("Invalid type specifier in format string");
7627
98.7k
            return begin;
7628
98.7k
        }
7629
98.7k
        handler.on_type(type);
7630
98.7k
        return begin;
7631
98.7k
    };
7632
7633
98.7k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7634
98.7k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7635
82.8k
        return do_presentation();
7636
82.8k
    }
7637
7638
15.9k
    if (SCN_UNLIKELY(begin == end)) {
7639
0
        handler.on_error("Unexpected end of format string");
7640
0
        return begin;
7641
0
    }
7642
7643
15.9k
    begin = parse_align(begin, end, handler);
7644
15.9k
    if (SCN_UNLIKELY(begin == end)) {
7645
0
        handler.on_error("Unexpected end of format string");
7646
0
        return begin;
7647
0
    }
7648
7649
15.9k
    begin = parse_width(begin, end, handler);
7650
15.9k
    if (SCN_UNLIKELY(begin == end)) {
7651
0
        handler.on_error("Unexpected end of format string");
7652
0
        return begin;
7653
0
    }
7654
7655
15.9k
    if (*begin == CharT{'.'}) {
7656
0
        ++begin;
7657
0
        if (SCN_UNLIKELY(begin == end)) {
7658
0
            handler.on_error("Unexpected end of format string");
7659
0
            return begin;
7660
0
        }
7661
0
        begin = parse_precision(begin, end, handler);
7662
0
        if (SCN_UNLIKELY(begin == end)) {
7663
0
            handler.on_error("Unexpected end of format string");
7664
0
            return begin;
7665
0
        }
7666
0
    }
7667
7668
15.9k
    if (*begin == CharT{'L'}) {
7669
3.62k
        handler.on_localized();
7670
3.62k
        ++begin;
7671
3.62k
    }
7672
15.9k
    if (SCN_UNLIKELY(begin == end)) {
7673
0
        handler.on_error("Unexpected end of format string");
7674
0
        return begin;
7675
0
    }
7676
7677
15.9k
    if (begin != end && *begin != CharT{'}'}) {
7678
12.2k
        do_presentation();
7679
12.2k
    }
7680
15.9k
    if (SCN_UNLIKELY(begin == end)) {
7681
0
        handler.on_error("Unexpected end of format string");
7682
0
        return begin;
7683
0
    }
7684
7685
15.9k
    return begin;
7686
15.9k
}
impl.cpp:char const* scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7608
58.7k
{
7609
58.7k
    auto do_presentation = [&]() -> const CharT* {
7610
58.7k
        if (*begin == CharT{'['}) {
7611
58.7k
            auto set = parse_presentation_set(begin, end, handler);
7612
58.7k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
58.7k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
58.7k
                return begin;
7617
58.7k
            }
7618
58.7k
            handler.on_character_set_string(set);
7619
58.7k
            return begin;
7620
58.7k
        }
7621
58.7k
        if (*begin == CharT{'/'}) {
7622
58.7k
            return parse_presentation_regex(begin, end, handler);
7623
58.7k
        }
7624
58.7k
        presentation_type type = parse_presentation_type(*begin++);
7625
58.7k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
58.7k
            handler.on_error("Invalid type specifier in format string");
7627
58.7k
            return begin;
7628
58.7k
        }
7629
58.7k
        handler.on_type(type);
7630
58.7k
        return begin;
7631
58.7k
    };
7632
7633
58.7k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7634
58.7k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7635
50.7k
        return do_presentation();
7636
50.7k
    }
7637
7638
7.95k
    if (SCN_UNLIKELY(begin == end)) {
7639
0
        handler.on_error("Unexpected end of format string");
7640
0
        return begin;
7641
0
    }
7642
7643
7.95k
    begin = parse_align(begin, end, handler);
7644
7.95k
    if (SCN_UNLIKELY(begin == end)) {
7645
0
        handler.on_error("Unexpected end of format string");
7646
0
        return begin;
7647
0
    }
7648
7649
7.95k
    begin = parse_width(begin, end, handler);
7650
7.95k
    if (SCN_UNLIKELY(begin == end)) {
7651
0
        handler.on_error("Unexpected end of format string");
7652
0
        return begin;
7653
0
    }
7654
7655
7.95k
    if (*begin == CharT{'.'}) {
7656
0
        ++begin;
7657
0
        if (SCN_UNLIKELY(begin == end)) {
7658
0
            handler.on_error("Unexpected end of format string");
7659
0
            return begin;
7660
0
        }
7661
0
        begin = parse_precision(begin, end, handler);
7662
0
        if (SCN_UNLIKELY(begin == end)) {
7663
0
            handler.on_error("Unexpected end of format string");
7664
0
            return begin;
7665
0
        }
7666
0
    }
7667
7668
7.95k
    if (*begin == CharT{'L'}) {
7669
1.81k
        handler.on_localized();
7670
1.81k
        ++begin;
7671
1.81k
    }
7672
7.95k
    if (SCN_UNLIKELY(begin == end)) {
7673
0
        handler.on_error("Unexpected end of format string");
7674
0
        return begin;
7675
0
    }
7676
7677
7.95k
    if (begin != end && *begin != CharT{'}'}) {
7678
6.14k
        do_presentation();
7679
6.14k
    }
7680
7.95k
    if (SCN_UNLIKELY(begin == end)) {
7681
0
        handler.on_error("Unexpected end of format string");
7682
0
        return begin;
7683
0
    }
7684
7685
7.95k
    return begin;
7686
7.95k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7608
647k
{
7609
647k
    auto do_presentation = [&]() -> const CharT* {
7610
647k
        if (*begin == CharT{'['}) {
7611
647k
            auto set = parse_presentation_set(begin, end, handler);
7612
647k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
647k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
647k
                return begin;
7617
647k
            }
7618
647k
            handler.on_character_set_string(set);
7619
647k
            return begin;
7620
647k
        }
7621
647k
        if (*begin == CharT{'/'}) {
7622
647k
            return parse_presentation_regex(begin, end, handler);
7623
647k
        }
7624
647k
        presentation_type type = parse_presentation_type(*begin++);
7625
647k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
647k
            handler.on_error("Invalid type specifier in format string");
7627
647k
            return begin;
7628
647k
        }
7629
647k
        handler.on_type(type);
7630
647k
        return begin;
7631
647k
    };
7632
7633
647k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7634
647k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7635
617k
        return do_presentation();
7636
617k
    }
7637
7638
29.2k
    if (SCN_UNLIKELY(begin == end)) {
7639
0
        handler.on_error("Unexpected end of format string");
7640
0
        return begin;
7641
0
    }
7642
7643
29.2k
    begin = parse_align(begin, end, handler);
7644
29.2k
    if (SCN_UNLIKELY(begin == end)) {
7645
0
        handler.on_error("Unexpected end of format string");
7646
0
        return begin;
7647
0
    }
7648
7649
29.2k
    begin = parse_width(begin, end, handler);
7650
29.2k
    if (SCN_UNLIKELY(begin == end)) {
7651
0
        handler.on_error("Unexpected end of format string");
7652
0
        return begin;
7653
0
    }
7654
7655
29.2k
    if (*begin == CharT{'.'}) {
7656
0
        ++begin;
7657
0
        if (SCN_UNLIKELY(begin == end)) {
7658
0
            handler.on_error("Unexpected end of format string");
7659
0
            return begin;
7660
0
        }
7661
0
        begin = parse_precision(begin, end, handler);
7662
0
        if (SCN_UNLIKELY(begin == end)) {
7663
0
            handler.on_error("Unexpected end of format string");
7664
0
            return begin;
7665
0
        }
7666
0
    }
7667
7668
29.2k
    if (*begin == CharT{'L'}) {
7669
7.24k
        handler.on_localized();
7670
7.24k
        ++begin;
7671
7.24k
    }
7672
29.2k
    if (SCN_UNLIKELY(begin == end)) {
7673
0
        handler.on_error("Unexpected end of format string");
7674
0
        return begin;
7675
0
    }
7676
7677
29.2k
    if (begin != end && *begin != CharT{'}'}) {
7678
21.9k
        do_presentation();
7679
21.9k
    }
7680
29.2k
    if (SCN_UNLIKELY(begin == end)) {
7681
0
        handler.on_error("Unexpected end of format string");
7682
0
        return begin;
7683
0
    }
7684
7685
29.2k
    return begin;
7686
29.2k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7608
323k
{
7609
323k
    auto do_presentation = [&]() -> const CharT* {
7610
323k
        if (*begin == CharT{'['}) {
7611
323k
            auto set = parse_presentation_set(begin, end, handler);
7612
323k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7613
                // clang-format off
7614
323k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7615
                // clang-format on
7616
323k
                return begin;
7617
323k
            }
7618
323k
            handler.on_character_set_string(set);
7619
323k
            return begin;
7620
323k
        }
7621
323k
        if (*begin == CharT{'/'}) {
7622
323k
            return parse_presentation_regex(begin, end, handler);
7623
323k
        }
7624
323k
        presentation_type type = parse_presentation_type(*begin++);
7625
323k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7626
323k
            handler.on_error("Invalid type specifier in format string");
7627
323k
            return begin;
7628
323k
        }
7629
323k
        handler.on_type(type);
7630
323k
        return begin;
7631
323k
    };
7632
7633
323k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7634
323k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7635
308k
        return do_presentation();
7636
308k
    }
7637
7638
14.6k
    if (SCN_UNLIKELY(begin == end)) {
7639
0
        handler.on_error("Unexpected end of format string");
7640
0
        return begin;
7641
0
    }
7642
7643
14.6k
    begin = parse_align(begin, end, handler);
7644
14.6k
    if (SCN_UNLIKELY(begin == end)) {
7645
0
        handler.on_error("Unexpected end of format string");
7646
0
        return begin;
7647
0
    }
7648
7649
14.6k
    begin = parse_width(begin, end, handler);
7650
14.6k
    if (SCN_UNLIKELY(begin == end)) {
7651
0
        handler.on_error("Unexpected end of format string");
7652
0
        return begin;
7653
0
    }
7654
7655
14.6k
    if (*begin == CharT{'.'}) {
7656
0
        ++begin;
7657
0
        if (SCN_UNLIKELY(begin == end)) {
7658
0
            handler.on_error("Unexpected end of format string");
7659
0
            return begin;
7660
0
        }
7661
0
        begin = parse_precision(begin, end, handler);
7662
0
        if (SCN_UNLIKELY(begin == end)) {
7663
0
            handler.on_error("Unexpected end of format string");
7664
0
            return begin;
7665
0
        }
7666
0
    }
7667
7668
14.6k
    if (*begin == CharT{'L'}) {
7669
3.62k
        handler.on_localized();
7670
3.62k
        ++begin;
7671
3.62k
    }
7672
14.6k
    if (SCN_UNLIKELY(begin == end)) {
7673
0
        handler.on_error("Unexpected end of format string");
7674
0
        return begin;
7675
0
    }
7676
7677
14.6k
    if (begin != end && *begin != CharT{'}'}) {
7678
10.9k
        do_presentation();
7679
10.9k
    }
7680
14.6k
    if (SCN_UNLIKELY(begin == end)) {
7681
0
        handler.on_error("Unexpected end of format string");
7682
0
        return begin;
7683
0
    }
7684
7685
14.6k
    return begin;
7686
14.6k
}
7687
7688
template <typename CharT, typename Handler>
7689
constexpr const CharT* parse_replacement_field(const CharT* begin,
7690
                                               const CharT* end,
7691
                                               Handler& handler)
7692
1.12M
{
7693
1.12M
    struct id_adapter {
7694
1.12M
        constexpr void operator()()
7695
1.12M
        {
7696
1.12M
            arg_id = handler.on_arg_id();
7697
1.12M
        }
impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()()
Line
Count
Source
7695
98.7k
        {
7696
98.7k
            arg_id = handler.on_arg_id();
7697
98.7k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()()
Line
Count
Source
7695
58.7k
        {
7696
58.7k
            arg_id = handler.on_arg_id();
7697
58.7k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
7695
647k
        {
7696
647k
            arg_id = handler.on_arg_id();
7697
647k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
7695
323k
        {
7696
323k
            arg_id = handler.on_arg_id();
7697
323k
        }
7698
1.12M
        constexpr void operator()(std::size_t id)
7699
1.12M
        {
7700
0
            arg_id = handler.on_arg_id(id);
7701
0
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()(unsigned long)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()(unsigned long)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()(unsigned long)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()(unsigned long)
7702
7703
1.12M
        constexpr void on_error(const char* msg)
7704
1.12M
        {
7705
0
            SCN_UNLIKELY_ATTR
7706
0
            handler.on_error(msg);
7707
0
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::on_error(char const*)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::on_error(char const*)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::on_error(char const*)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::on_error(char const*)
7708
7709
1.12M
        Handler& handler;
7710
1.12M
        std::size_t arg_id;
7711
1.12M
    };
7712
7713
1.12M
    ++begin;
7714
1.12M
    if (SCN_UNLIKELY(begin == end)) {
7715
0
        handler.on_error("Unexpected end of replacement field");
7716
0
        return begin;
7717
0
    }
7718
7719
1.12M
    if (*begin == CharT{'}'}) {
7720
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7721
0
    }
7722
1.12M
    else if (*begin == CharT{'{'}) {
7723
0
        handler.on_literal_text(begin, begin + 1);
7724
0
    }
7725
1.12M
    else {
7726
1.12M
        auto adapter = id_adapter{handler, 0};
7727
1.12M
        begin = parse_arg_id(begin, end, adapter);
7728
7729
1.12M
        if (SCN_UNLIKELY(begin == end)) {
7730
0
            handler.on_error("Missing '}' in format string");
7731
0
            return begin;
7732
0
        }
7733
7734
1.12M
        if (*begin == CharT{'}'}) {
7735
0
            handler.on_replacement_field(adapter.arg_id, begin);
7736
0
        }
7737
1.12M
        else if (*begin == CharT{':'}) {
7738
1.12M
            if (SCN_UNLIKELY(begin + 1 == end)) {
7739
0
                handler.on_error("Unexpected end of replacement field");
7740
0
                return begin;
7741
0
            }
7742
1.12M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7743
1.12M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7744
32.6k
                handler.on_error("Unknown format specifier");
7745
32.6k
                return begin;
7746
32.6k
            }
7747
1.12M
        }
7748
0
        else {
7749
0
            SCN_UNLIKELY_ATTR
7750
0
            handler.on_error("Missing '}' in format string");
7751
0
            return begin;
7752
0
        }
7753
1.12M
    }
7754
1.09M
    return begin + 1;
7755
1.12M
}
impl.cpp:char const* scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7692
98.7k
{
7693
98.7k
    struct id_adapter {
7694
98.7k
        constexpr void operator()()
7695
98.7k
        {
7696
98.7k
            arg_id = handler.on_arg_id();
7697
98.7k
        }
7698
98.7k
        constexpr void operator()(std::size_t id)
7699
98.7k
        {
7700
98.7k
            arg_id = handler.on_arg_id(id);
7701
98.7k
        }
7702
7703
98.7k
        constexpr void on_error(const char* msg)
7704
98.7k
        {
7705
98.7k
            SCN_UNLIKELY_ATTR
7706
98.7k
            handler.on_error(msg);
7707
98.7k
        }
7708
7709
98.7k
        Handler& handler;
7710
98.7k
        std::size_t arg_id;
7711
98.7k
    };
7712
7713
98.7k
    ++begin;
7714
98.7k
    if (SCN_UNLIKELY(begin == end)) {
7715
0
        handler.on_error("Unexpected end of replacement field");
7716
0
        return begin;
7717
0
    }
7718
7719
98.7k
    if (*begin == CharT{'}'}) {
7720
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7721
0
    }
7722
98.7k
    else if (*begin == CharT{'{'}) {
7723
0
        handler.on_literal_text(begin, begin + 1);
7724
0
    }
7725
98.7k
    else {
7726
98.7k
        auto adapter = id_adapter{handler, 0};
7727
98.7k
        begin = parse_arg_id(begin, end, adapter);
7728
7729
98.7k
        if (SCN_UNLIKELY(begin == end)) {
7730
0
            handler.on_error("Missing '}' in format string");
7731
0
            return begin;
7732
0
        }
7733
7734
98.7k
        if (*begin == CharT{'}'}) {
7735
0
            handler.on_replacement_field(adapter.arg_id, begin);
7736
0
        }
7737
98.7k
        else if (*begin == CharT{':'}) {
7738
98.7k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7739
0
                handler.on_error("Unexpected end of replacement field");
7740
0
                return begin;
7741
0
            }
7742
98.7k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7743
98.7k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7744
7.24k
                handler.on_error("Unknown format specifier");
7745
7.24k
                return begin;
7746
7.24k
            }
7747
98.7k
        }
7748
0
        else {
7749
0
            SCN_UNLIKELY_ATTR
7750
0
            handler.on_error("Missing '}' in format string");
7751
0
            return begin;
7752
0
        }
7753
98.7k
    }
7754
91.5k
    return begin + 1;
7755
98.7k
}
impl.cpp:char const* scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7692
58.7k
{
7693
58.7k
    struct id_adapter {
7694
58.7k
        constexpr void operator()()
7695
58.7k
        {
7696
58.7k
            arg_id = handler.on_arg_id();
7697
58.7k
        }
7698
58.7k
        constexpr void operator()(std::size_t id)
7699
58.7k
        {
7700
58.7k
            arg_id = handler.on_arg_id(id);
7701
58.7k
        }
7702
7703
58.7k
        constexpr void on_error(const char* msg)
7704
58.7k
        {
7705
58.7k
            SCN_UNLIKELY_ATTR
7706
58.7k
            handler.on_error(msg);
7707
58.7k
        }
7708
7709
58.7k
        Handler& handler;
7710
58.7k
        std::size_t arg_id;
7711
58.7k
    };
7712
7713
58.7k
    ++begin;
7714
58.7k
    if (SCN_UNLIKELY(begin == end)) {
7715
0
        handler.on_error("Unexpected end of replacement field");
7716
0
        return begin;
7717
0
    }
7718
7719
58.7k
    if (*begin == CharT{'}'}) {
7720
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7721
0
    }
7722
58.7k
    else if (*begin == CharT{'{'}) {
7723
0
        handler.on_literal_text(begin, begin + 1);
7724
0
    }
7725
58.7k
    else {
7726
58.7k
        auto adapter = id_adapter{handler, 0};
7727
58.7k
        begin = parse_arg_id(begin, end, adapter);
7728
7729
58.7k
        if (SCN_UNLIKELY(begin == end)) {
7730
0
            handler.on_error("Missing '}' in format string");
7731
0
            return begin;
7732
0
        }
7733
7734
58.7k
        if (*begin == CharT{'}'}) {
7735
0
            handler.on_replacement_field(adapter.arg_id, begin);
7736
0
        }
7737
58.7k
        else if (*begin == CharT{':'}) {
7738
58.7k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7739
0
                handler.on_error("Unexpected end of replacement field");
7740
0
                return begin;
7741
0
            }
7742
58.7k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7743
58.7k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7744
3.62k
                handler.on_error("Unknown format specifier");
7745
3.62k
                return begin;
7746
3.62k
            }
7747
58.7k
        }
7748
0
        else {
7749
0
            SCN_UNLIKELY_ATTR
7750
0
            handler.on_error("Missing '}' in format string");
7751
0
            return begin;
7752
0
        }
7753
58.7k
    }
7754
55.0k
    return begin + 1;
7755
58.7k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7692
647k
{
7693
647k
    struct id_adapter {
7694
647k
        constexpr void operator()()
7695
647k
        {
7696
647k
            arg_id = handler.on_arg_id();
7697
647k
        }
7698
647k
        constexpr void operator()(std::size_t id)
7699
647k
        {
7700
647k
            arg_id = handler.on_arg_id(id);
7701
647k
        }
7702
7703
647k
        constexpr void on_error(const char* msg)
7704
647k
        {
7705
647k
            SCN_UNLIKELY_ATTR
7706
647k
            handler.on_error(msg);
7707
647k
        }
7708
7709
647k
        Handler& handler;
7710
647k
        std::size_t arg_id;
7711
647k
    };
7712
7713
647k
    ++begin;
7714
647k
    if (SCN_UNLIKELY(begin == end)) {
7715
0
        handler.on_error("Unexpected end of replacement field");
7716
0
        return begin;
7717
0
    }
7718
7719
647k
    if (*begin == CharT{'}'}) {
7720
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7721
0
    }
7722
647k
    else if (*begin == CharT{'{'}) {
7723
0
        handler.on_literal_text(begin, begin + 1);
7724
0
    }
7725
647k
    else {
7726
647k
        auto adapter = id_adapter{handler, 0};
7727
647k
        begin = parse_arg_id(begin, end, adapter);
7728
7729
647k
        if (SCN_UNLIKELY(begin == end)) {
7730
0
            handler.on_error("Missing '}' in format string");
7731
0
            return begin;
7732
0
        }
7733
7734
647k
        if (*begin == CharT{'}'}) {
7735
0
            handler.on_replacement_field(adapter.arg_id, begin);
7736
0
        }
7737
647k
        else if (*begin == CharT{':'}) {
7738
647k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7739
0
                handler.on_error("Unexpected end of replacement field");
7740
0
                return begin;
7741
0
            }
7742
647k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7743
647k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7744
14.4k
                handler.on_error("Unknown format specifier");
7745
14.4k
                return begin;
7746
14.4k
            }
7747
647k
        }
7748
0
        else {
7749
0
            SCN_UNLIKELY_ATTR
7750
0
            handler.on_error("Missing '}' in format string");
7751
0
            return begin;
7752
0
        }
7753
647k
    }
7754
632k
    return begin + 1;
7755
647k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7692
323k
{
7693
323k
    struct id_adapter {
7694
323k
        constexpr void operator()()
7695
323k
        {
7696
323k
            arg_id = handler.on_arg_id();
7697
323k
        }
7698
323k
        constexpr void operator()(std::size_t id)
7699
323k
        {
7700
323k
            arg_id = handler.on_arg_id(id);
7701
323k
        }
7702
7703
323k
        constexpr void on_error(const char* msg)
7704
323k
        {
7705
323k
            SCN_UNLIKELY_ATTR
7706
323k
            handler.on_error(msg);
7707
323k
        }
7708
7709
323k
        Handler& handler;
7710
323k
        std::size_t arg_id;
7711
323k
    };
7712
7713
323k
    ++begin;
7714
323k
    if (SCN_UNLIKELY(begin == end)) {
7715
0
        handler.on_error("Unexpected end of replacement field");
7716
0
        return begin;
7717
0
    }
7718
7719
323k
    if (*begin == CharT{'}'}) {
7720
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7721
0
    }
7722
323k
    else if (*begin == CharT{'{'}) {
7723
0
        handler.on_literal_text(begin, begin + 1);
7724
0
    }
7725
323k
    else {
7726
323k
        auto adapter = id_adapter{handler, 0};
7727
323k
        begin = parse_arg_id(begin, end, adapter);
7728
7729
323k
        if (SCN_UNLIKELY(begin == end)) {
7730
0
            handler.on_error("Missing '}' in format string");
7731
0
            return begin;
7732
0
        }
7733
7734
323k
        if (*begin == CharT{'}'}) {
7735
0
            handler.on_replacement_field(adapter.arg_id, begin);
7736
0
        }
7737
323k
        else if (*begin == CharT{':'}) {
7738
323k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7739
0
                handler.on_error("Unexpected end of replacement field");
7740
0
                return begin;
7741
0
            }
7742
323k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7743
323k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7744
7.24k
                handler.on_error("Unknown format specifier");
7745
7.24k
                return begin;
7746
7.24k
            }
7747
323k
        }
7748
0
        else {
7749
0
            SCN_UNLIKELY_ATTR
7750
0
            handler.on_error("Missing '}' in format string");
7751
0
            return begin;
7752
0
        }
7753
323k
    }
7754
316k
    return begin + 1;
7755
323k
}
7756
7757
template <bool IsConstexpr, typename CharT, typename Handler>
7758
constexpr void parse_format_string_impl(std::basic_string_view<CharT> format,
7759
                                        Handler&& handler)
7760
1.12M
{
7761
    // TODO: memchr fast path with a larger (> 32) format string
7762
7763
1.12M
    auto begin = format.data();
7764
1.12M
    auto it = begin;
7765
1.12M
    const auto end = format.data() + format.size();
7766
7767
2.17M
    while (it != end) {
7768
1.12M
        const auto ch = *it++;
7769
1.12M
        if (ch == CharT{'{'}) {
7770
1.12M
            handler.on_literal_text(begin, it - 1);
7771
7772
1.12M
            begin = it = parse_replacement_field(it - 1, end, handler);
7773
1.12M
            if (!handler.get_error()) {
7774
81.5k
                return;
7775
81.5k
            }
7776
1.12M
        }
7777
0
        else if (ch == CharT{'}'}) {
7778
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7779
0
                handler.on_error("Unmatched '}' in format string");
7780
0
                return;
7781
0
            }
7782
7783
0
            handler.on_literal_text(begin, it);
7784
0
            begin = ++it;
7785
0
        }
7786
1.12M
    }
7787
7788
1.04M
    handler.on_literal_text(begin, end);
7789
1.04M
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, char, scn::v4::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7760
98.7k
{
7761
    // TODO: memchr fast path with a larger (> 32) format string
7762
7763
98.7k
    auto begin = format.data();
7764
98.7k
    auto it = begin;
7765
98.7k
    const auto end = format.data() + format.size();
7766
7767
179k
    while (it != end) {
7768
98.7k
        const auto ch = *it++;
7769
98.7k
        if (ch == CharT{'{'}) {
7770
98.7k
            handler.on_literal_text(begin, it - 1);
7771
7772
98.7k
            begin = it = parse_replacement_field(it - 1, end, handler);
7773
98.7k
            if (!handler.get_error()) {
7774
18.1k
                return;
7775
18.1k
            }
7776
98.7k
        }
7777
0
        else if (ch == CharT{'}'}) {
7778
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7779
0
                handler.on_error("Unmatched '}' in format string");
7780
0
                return;
7781
0
            }
7782
7783
0
            handler.on_literal_text(begin, it);
7784
0
            begin = ++it;
7785
0
        }
7786
98.7k
    }
7787
7788
80.6k
    handler.on_literal_text(begin, end);
7789
80.6k
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, char, scn::v4::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7760
58.7k
{
7761
    // TODO: memchr fast path with a larger (> 32) format string
7762
7763
58.7k
    auto begin = format.data();
7764
58.7k
    auto it = begin;
7765
58.7k
    const auto end = format.data() + format.size();
7766
7767
108k
    while (it != end) {
7768
58.7k
        const auto ch = *it++;
7769
58.7k
        if (ch == CharT{'{'}) {
7770
58.7k
            handler.on_literal_text(begin, it - 1);
7771
7772
58.7k
            begin = it = parse_replacement_field(it - 1, end, handler);
7773
58.7k
            if (!handler.get_error()) {
7774
9.06k
                return;
7775
9.06k
            }
7776
58.7k
        }
7777
0
        else if (ch == CharT{'}'}) {
7778
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7779
0
                handler.on_error("Unmatched '}' in format string");
7780
0
                return;
7781
0
            }
7782
7783
0
            handler.on_literal_text(begin, it);
7784
0
            begin = ++it;
7785
0
        }
7786
58.7k
    }
7787
7788
49.6k
    handler.on_literal_text(begin, end);
7789
49.6k
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7760
647k
{
7761
    // TODO: memchr fast path with a larger (> 32) format string
7762
7763
647k
    auto begin = format.data();
7764
647k
    auto it = begin;
7765
647k
    const auto end = format.data() + format.size();
7766
7767
1.25M
    while (it != end) {
7768
647k
        const auto ch = *it++;
7769
647k
        if (ch == CharT{'{'}) {
7770
647k
            handler.on_literal_text(begin, it - 1);
7771
7772
647k
            begin = it = parse_replacement_field(it - 1, end, handler);
7773
647k
            if (!handler.get_error()) {
7774
36.2k
                return;
7775
36.2k
            }
7776
647k
        }
7777
0
        else if (ch == CharT{'}'}) {
7778
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7779
0
                handler.on_error("Unmatched '}' in format string");
7780
0
                return;
7781
0
            }
7782
7783
0
            handler.on_literal_text(begin, it);
7784
0
            begin = ++it;
7785
0
        }
7786
647k
    }
7787
7788
610k
    handler.on_literal_text(begin, end);
7789
610k
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7760
323k
{
7761
    // TODO: memchr fast path with a larger (> 32) format string
7762
7763
323k
    auto begin = format.data();
7764
323k
    auto it = begin;
7765
323k
    const auto end = format.data() + format.size();
7766
7767
629k
    while (it != end) {
7768
323k
        const auto ch = *it++;
7769
323k
        if (ch == CharT{'{'}) {
7770
323k
            handler.on_literal_text(begin, it - 1);
7771
7772
323k
            begin = it = parse_replacement_field(it - 1, end, handler);
7773
323k
            if (!handler.get_error()) {
7774
18.1k
                return;
7775
18.1k
            }
7776
323k
        }
7777
0
        else if (ch == CharT{'}'}) {
7778
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7779
0
                handler.on_error("Unmatched '}' in format string");
7780
0
                return;
7781
0
            }
7782
7783
0
            handler.on_literal_text(begin, it);
7784
0
            begin = ++it;
7785
0
        }
7786
323k
    }
7787
7788
305k
    handler.on_literal_text(begin, end);
7789
305k
}
7790
7791
template <bool IsConstexpr, typename CharT, typename Handler>
7792
constexpr scan_expected<void> parse_format_string(
7793
    std::basic_string_view<CharT> format,
7794
    Handler&& handler)
7795
1.12M
{
7796
1.12M
    parse_format_string_impl<IsConstexpr>(format, handler);
7797
1.12M
    handler.check_args_exhausted();
7798
1.12M
    return handler.get_error();
7799
1.12M
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, char, scn::v4::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7795
98.7k
{
7796
98.7k
    parse_format_string_impl<IsConstexpr>(format, handler);
7797
98.7k
    handler.check_args_exhausted();
7798
98.7k
    return handler.get_error();
7799
98.7k
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, char, scn::v4::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7795
58.7k
{
7796
58.7k
    parse_format_string_impl<IsConstexpr>(format, handler);
7797
58.7k
    handler.check_args_exhausted();
7798
58.7k
    return handler.get_error();
7799
58.7k
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7795
647k
{
7796
647k
    parse_format_string_impl<IsConstexpr>(format, handler);
7797
647k
    handler.check_args_exhausted();
7798
647k
    return handler.get_error();
7799
647k
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7795
323k
{
7796
323k
    parse_format_string_impl<IsConstexpr>(format, handler);
7797
323k
    handler.check_args_exhausted();
7798
323k
    return handler.get_error();
7799
323k
}
7800
7801
enum class arg_type_category {
7802
    none,
7803
    integer,
7804
    unsigned_integer,
7805
    floating,
7806
    string,
7807
    pointer,
7808
    boolean,
7809
    character,
7810
    custom
7811
};
7812
7813
constexpr arg_type_category get_category_for_arg_type(arg_type type)
7814
16.3k
{
7815
16.3k
    switch (type) {
7816
0
        case arg_type::none_type:
7817
0
            return arg_type_category::none;
7818
7819
0
        case arg_type::schar_type:
7820
0
        case arg_type::short_type:
7821
0
        case arg_type::int_type:
7822
0
        case arg_type::long_type:
7823
0
        case arg_type::llong_type:
7824
0
            return arg_type_category::integer;
7825
7826
0
        case arg_type::uchar_type:
7827
0
        case arg_type::ushort_type:
7828
0
        case arg_type::uint_type:
7829
0
        case arg_type::ulong_type:
7830
0
        case arg_type::ullong_type:
7831
0
            return arg_type_category::unsigned_integer;
7832
7833
0
        case arg_type::pointer_type:
7834
0
            return arg_type_category::pointer;
7835
0
        case arg_type::bool_type:
7836
0
            return arg_type_category::boolean;
7837
0
        case arg_type::narrow_character_type:
7838
0
        case arg_type::wide_character_type:
7839
0
        case arg_type::code_point_type:
7840
0
            return arg_type_category::character;
7841
7842
0
        case arg_type::float_type:
7843
0
        case arg_type::double_type:
7844
0
        case arg_type::ldouble_type:
7845
0
            return arg_type_category::floating;
7846
7847
1.81k
        case arg_type::narrow_string_view_type:
7848
5.43k
        case arg_type::narrow_string_type:
7849
9.06k
        case arg_type::wide_string_view_type:
7850
16.3k
        case arg_type::wide_string_type:
7851
16.3k
            return arg_type_category::string;
7852
7853
0
        case arg_type::custom_type:
7854
0
            return arg_type_category::custom;
7855
7856
0
            SCN_CLANG_PUSH
7857
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
7858
0
        default:
7859
0
            SCN_ENSURE(false);
7860
16.3k
            SCN_UNREACHABLE;
7861
16.3k
            SCN_CLANG_POP
7862
16.3k
    }
7863
7864
16.3k
    SCN_UNREACHABLE;
7865
16.3k
}
7866
7867
template <typename Handler>
7868
class specs_checker : public Handler {
7869
public:
7870
    template <typename H>
7871
    constexpr specs_checker(H&& handler, arg_type type)
7872
1.12M
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7873
1.12M
    {
7874
1.12M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7875
1.12M
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7872
98.7k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7873
98.7k
    {
7874
98.7k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7875
98.7k
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7872
58.7k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7873
58.7k
    {
7874
58.7k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7875
58.7k
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7872
647k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7873
647k
    {
7874
647k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7875
647k
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7872
323k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7873
323k
    {
7874
323k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7875
323k
    }
7876
7877
    constexpr void on_localized()
7878
16.3k
    {
7879
16.3k
        const auto cat = get_category_for_arg_type(m_arg_type);
7880
16.3k
        if (cat != arg_type_category::integer &&
7881
16.3k
            cat != arg_type_category::unsigned_integer &&
7882
16.3k
            cat != arg_type_category::floating &&
7883
16.3k
            cat != arg_type_category::boolean) {
7884
16.3k
            SCN_UNLIKELY_ATTR
7885
            // clang-format off
7886
16.3k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7887
            // clang-format on
7888
16.3k
        }
7889
7890
0
        Handler::on_localized();
7891
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >::on_localized()
Line
Count
Source
7878
3.62k
    {
7879
3.62k
        const auto cat = get_category_for_arg_type(m_arg_type);
7880
3.62k
        if (cat != arg_type_category::integer &&
7881
3.62k
            cat != arg_type_category::unsigned_integer &&
7882
3.62k
            cat != arg_type_category::floating &&
7883
3.62k
            cat != arg_type_category::boolean) {
7884
3.62k
            SCN_UNLIKELY_ATTR
7885
            // clang-format off
7886
3.62k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7887
            // clang-format on
7888
3.62k
        }
7889
7890
0
        Handler::on_localized();
7891
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::on_localized()
Line
Count
Source
7878
1.81k
    {
7879
1.81k
        const auto cat = get_category_for_arg_type(m_arg_type);
7880
1.81k
        if (cat != arg_type_category::integer &&
7881
1.81k
            cat != arg_type_category::unsigned_integer &&
7882
1.81k
            cat != arg_type_category::floating &&
7883
1.81k
            cat != arg_type_category::boolean) {
7884
1.81k
            SCN_UNLIKELY_ATTR
7885
            // clang-format off
7886
1.81k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7887
            // clang-format on
7888
1.81k
        }
7889
7890
0
        Handler::on_localized();
7891
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >::on_localized()
Line
Count
Source
7878
7.24k
    {
7879
7.24k
        const auto cat = get_category_for_arg_type(m_arg_type);
7880
7.24k
        if (cat != arg_type_category::integer &&
7881
7.24k
            cat != arg_type_category::unsigned_integer &&
7882
7.24k
            cat != arg_type_category::floating &&
7883
7.24k
            cat != arg_type_category::boolean) {
7884
7.24k
            SCN_UNLIKELY_ATTR
7885
            // clang-format off
7886
7.24k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7887
            // clang-format on
7888
7.24k
        }
7889
7890
0
        Handler::on_localized();
7891
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::on_localized()
Line
Count
Source
7878
3.62k
    {
7879
3.62k
        const auto cat = get_category_for_arg_type(m_arg_type);
7880
3.62k
        if (cat != arg_type_category::integer &&
7881
3.62k
            cat != arg_type_category::unsigned_integer &&
7882
3.62k
            cat != arg_type_category::floating &&
7883
3.62k
            cat != arg_type_category::boolean) {
7884
3.62k
            SCN_UNLIKELY_ATTR
7885
            // clang-format off
7886
3.62k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7887
            // clang-format on
7888
3.62k
        }
7889
7890
0
        Handler::on_localized();
7891
0
    }
7892
7893
private:
7894
    arg_type m_arg_type;
7895
};
7896
7897
template <typename Handler>
7898
constexpr void check_int_type_specs(const format_specs& specs,
7899
                                    Handler&& handler)
7900
0
{
7901
0
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
7902
0
        return handler.on_error("Invalid type specifier for integer type");
7903
0
    }
7904
0
    if (specs.localized) {
7905
0
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
7906
            // clang-format off
7907
0
            handler.on_error("'b'/'B' specifier not supported for localized integers");
7908
            // clang-format on
7909
0
            return;
7910
0
        }
7911
0
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
7912
            // clang-format off
7913
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
7914
            // clang-format on
7915
0
        }
7916
0
    }
7917
0
}
Unexecuted instantiation: void scn::v4::detail::check_int_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_int_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7918
7919
template <typename Handler>
7920
constexpr void check_char_type_specs(const format_specs& specs,
7921
                                     Handler&& handler)
7922
0
{
7923
0
    if (specs.type > presentation_type::int_hex ||
7924
0
        specs.type == presentation_type::int_arbitrary_base) {
7925
0
        SCN_UNLIKELY_ATTR
7926
0
        return handler.on_error("Invalid type specifier for character type");
7927
0
    }
7928
0
}
Unexecuted instantiation: void scn::v4::detail::check_char_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_char_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7929
7930
template <typename Handler>
7931
constexpr void check_code_point_type_specs(const format_specs& specs,
7932
                                           Handler&& handler)
7933
0
{
7934
0
    if (specs.type != presentation_type::none &&
7935
0
        specs.type != presentation_type::character) {
7936
0
        SCN_UNLIKELY_ATTR
7937
0
        return handler.on_error("Invalid type specifier for code point type");
7938
0
    }
7939
0
}
7940
7941
template <typename Handler>
7942
constexpr void check_float_type_specs(const format_specs& specs,
7943
                                      Handler&& handler)
7944
0
{
7945
0
    if (specs.type != presentation_type::none &&
7946
0
        (specs.type < presentation_type::float_hex ||
7947
0
         specs.type > presentation_type::float_general)) {
7948
0
        SCN_UNLIKELY_ATTR
7949
0
        return handler.on_error("Invalid type specifier for float type");
7950
0
    }
7951
0
}
Unexecuted instantiation: void scn::v4::detail::check_float_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_float_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7952
7953
template <typename Handler>
7954
constexpr void check_string_type_specs(const format_specs& specs,
7955
                                       Handler&& handler)
7956
1.09M
{
7957
1.09M
    if (specs.type == presentation_type::none ||
7958
1.09M
        specs.type == presentation_type::string ||
7959
1.09M
        specs.type == presentation_type::string_set ||
7960
1.09M
        specs.type == presentation_type::regex ||
7961
1.09M
        specs.type == presentation_type::regex_escaped) {
7962
1.07M
        return;
7963
1.07M
    }
7964
16.3k
    if (specs.type == presentation_type::character) {
7965
16.3k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7966
            // clang-format off
7967
16.3k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7968
            // clang-format on
7969
16.3k
        }
7970
0
        return;
7971
16.3k
    }
7972
0
    SCN_UNLIKELY_ATTR
7973
0
    handler.on_error("Invalid type specifier for string");
7974
0
}
Unexecuted instantiation: void scn::v4::detail::check_string_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
void scn::v4::detail::check_string_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
Line
Count
Source
7956
1.09M
{
7957
1.09M
    if (specs.type == presentation_type::none ||
7958
1.09M
        specs.type == presentation_type::string ||
7959
1.09M
        specs.type == presentation_type::string_set ||
7960
1.09M
        specs.type == presentation_type::regex ||
7961
1.09M
        specs.type == presentation_type::regex_escaped) {
7962
1.07M
        return;
7963
1.07M
    }
7964
16.3k
    if (specs.type == presentation_type::character) {
7965
16.3k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7966
            // clang-format off
7967
16.3k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7968
            // clang-format on
7969
16.3k
        }
7970
0
        return;
7971
16.3k
    }
7972
0
    SCN_UNLIKELY_ATTR
7973
0
    handler.on_error("Invalid type specifier for string");
7974
0
}
7975
7976
template <typename Handler>
7977
constexpr void check_pointer_type_specs(const format_specs& specs,
7978
                                        Handler&& handler)
7979
0
{
7980
0
    if (specs.type != presentation_type::none &&
7981
0
        specs.type != presentation_type::pointer) {
7982
0
        SCN_UNLIKELY_ATTR
7983
0
        return handler.on_error("Invalid type specifier for pointer");
7984
0
    }
7985
0
}
Unexecuted instantiation: void scn::v4::detail::check_pointer_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_pointer_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7986
7987
template <typename Handler>
7988
constexpr void check_bool_type_specs(const format_specs& specs,
7989
                                     Handler&& handler)
7990
0
{
7991
0
    if (specs.type != presentation_type::none &&
7992
0
        specs.type != presentation_type::string &&
7993
0
        specs.type != presentation_type::int_generic &&
7994
0
        specs.type != presentation_type::int_hex &&
7995
0
        specs.type != presentation_type::int_binary &&
7996
0
        specs.type != presentation_type::int_unsigned_decimal &&
7997
0
        specs.type != presentation_type::int_octal &&
7998
0
        specs.type != presentation_type::int_decimal) {
7999
0
        SCN_UNLIKELY_ATTR
8000
0
        return handler.on_error("Invalid type specifier for boolean");
8001
0
    }
8002
0
}
Unexecuted instantiation: void scn::v4::detail::check_bool_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_bool_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
8003
8004
template <typename Handler>
8005
constexpr void check_regex_type_specs(const format_specs& specs,
8006
                                      Handler&& handler)
8007
0
{
8008
0
    if (SCN_UNLIKELY(specs.type == presentation_type::none ||
8009
0
                     specs.charset_string_size == 0)) {
8010
        // clang-format off
8011
0
        return handler.on_error("Regular expression needs to specified when reading regex_matches");
8012
        // clang-format on
8013
0
    }
8014
0
    if (specs.type == presentation_type::regex ||
8015
0
        specs.type == presentation_type::regex_escaped) {
8016
0
        return;
8017
0
    }
8018
0
    SCN_UNLIKELY_ATTR
8019
0
    handler.on_error("Invalid type specifier for regex_matches");
8020
0
}
Unexecuted instantiation: void scn::v4::detail::check_regex_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_regex_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
8021
}  // namespace detail
8022
8023
/**
8024
 * \defgroup format-string Format strings
8025
 *
8026
 * \brief Format string description
8027
 *
8028
 * The format string syntax is heavily influenced by {fmt} and
8029
 * `std::format`, and is largely compatible with it. Scanning functions,
8030
 * such as `scn::scan` and
8031
 * `scn::input`, use the format string syntax described in this section.
8032
 *
8033
 * Format strings consist of:
8034
 *
8035
 *  * Replacement fields, which are surrounded by curly braces `{}`.
8036
 *
8037
 *  * Non-whitespace characters (except `{}`; for literal braces, use
8038
 *    `{{` and `}}`), which consume exactly one identical character from the
8039
 *    input
8040
 *
8041
 *  * Whitespace characters, which consume any and all available consecutive
8042
 *    whitespace from the input.
8043
 *
8044
 * Literal characters are matched by code point one-to-one, with no
8045
 * normalization being done.
8046
 * `Ä` (U+00C4, UTF-8 0xc3 0x84) only matches another U+00C4, and not, for
8047
 * example, U+00A8 (DIAERESIS) and U+0041 (LATIN CAPITAL LETTER A).
8048
 *
8049
 * Characters (code points) are considered to be whitespace characters by
8050
 * the Unicode Pattern_White_Space property, as defined by UAX31-R3a.
8051
 * These code points are:
8052
 *
8053
 *  * ASCII whitespace characters ("\t\n\v\f\r ")
8054
 *  * U+0085 (next line)
8055
 *  * U+200E and U+200F (LEFT-TO-RIGHT MARK and RIGHT-TO-LEFT MARK)
8056
 *  * U+2028 and U+2029 (LINE SEPARATOR and PARAGRAPH SEPARATOR)
8057
 *
8058
 * The grammar for a replacement field is as follows:
8059
 *
8060
 * \code
8061
 * replacement-field   ::= '{' [arg-id] [':' format-spec] '}'
8062
 * arg-id              ::= positive-integer
8063
 *
8064
 * format-spec         ::= [fill-and-align]
8065
 *                         [width] [precision]
8066
 *                         ['L'] [type]
8067
 * fill-and-align      ::= [fill] align
8068
 * fill                ::= any character other than
8069
 *                         '{' or '}'
8070
 * align               ::= one of '<' '>' '^'
8071
 * width               ::= positive-integer
8072
 * precision           ::= '.' nonnegative-integer
8073
 * type                ::= 'a' | 'A' | 'b' | 'B' | 'c' | 'd' |
8074
 *                         'e' | 'E' | 'f' | 'F' | 'g' | 'G' |
8075
 *                         'o' | 'p' | 's' | 'x' | 'X' | 'i' | 'u'
8076
 * \endcode
8077
 *
8078
 * \section arg-ids Argument IDs
8079
 *
8080
 * The `arg-id` specifier can be used to index arguments manually.
8081
 * If manual indexing is used, all of the indices in a format string must be
8082
 * stated explicitly. The same `arg-id` can appear in the format string
8083
 * only once, and must refer to a valid argument.
8084
 *
8085
 * \code{.cpp}
8086
 * // Format string equivalent to "{0} to {1}"
8087
 * auto a = scn::scan<int, int>("2 to 300", "{} to {}");
8088
 * // a->values() == (2, 300)
8089
 *
8090
 * // Manual indexing
8091
 * auto b = scn::scan<int, int>("2 to 300", "{1} to {0}");
8092
 * // b->values() == (300, 2)
8093
 *
8094
 * // INVALID:
8095
 * // Automatic and manual indexing is mixed
8096
 * auto c = scn::scan<int, int>("2 to 300", "{} to {0}");
8097
 *
8098
 * // INVALID:
8099
 * // Same argument is referred to multiple times
8100
 * auto d = scn::scan<int, int>("2 to 300", "{0} to {0}");
8101
 *
8102
 * // INVALID:
8103
 * // {2} does not refer to an argument
8104
 * auto e = scn::scan<int, int>("2 to 300", "{0} to {2}");
8105
 * \endcode
8106
 *
8107
 * \section fill-and-align Fill and align
8108
 *
8109
 * Alignment allows for skipping character before and/or after a value.
8110
 * There are three possible values for alignment:
8111
 *
8112
 * <table>
8113
 * <caption id="align-table">
8114
 * Alignment options
8115
 * </caption>
8116
 *
8117
 * <tr><th>Option</th> <th>Meaning</th></tr>
8118
 *
8119
 * <tr>
8120
 * <td>`<`</td>
8121
 * <td>
8122
 * Align the value to the left (skips fill characters after the value)
8123
 * </td>
8124
 * </tr>
8125
 *
8126
 * <tr>
8127
 * <td>`>`</td>
8128
 * <td>
8129
 * Align the value to the right (skips fill characters before the value)
8130
 * </td>
8131
 * </tr>
8132
 *
8133
 * <tr>
8134
 * <td>`^`</td>
8135
 * <td>
8136
 * Align the value to the center
8137
 * (skips fill characters both before and after the value)
8138
 * </td>
8139
 * </tr>
8140
 * </table>
8141
 *
8142
 * The fill character can be any Unicode code point, except for `{` and `}`.
8143
 * The default fill is the space character `' '`.
8144
 *
8145
 * For format type specifiers other than `c` (default for `char` and `wchar_t`,
8146
 * available for `string` and `string_view`), `[...]`, and the regex `/.../`,
8147
 * the default alignment is `>`.
8148
 * Otherwise, the default alignment is `<`.
8149
 *
8150
 * In addition to the skipping of fill characters,
8151
 * for format type specifiers with the `>` default alignment,
8152
 * preceding whitespace is automatically skipped.
8153
 * This preceding whitespace isn't counted as part of the field width,
8154
 * as described below.
8155
 *
8156
 * The number of fill characters consumed can be controlled with the width and
8157
 * precision specifiers.
8158
 *
8159
 * \section width Width
8160
 *
8161
 * Width specifies the minimum number of characters that will be read from
8162
 * the source range. It can be any unsigned integer. Any fill characters skipped
8163
 * are included in the width
8164
 *
8165
 * For the purposes of width calculation, the same algorithm is used that in
8166
 * {fmt}. Every code point has a width of one, except the following ones
8167
 * have a width of 2:
8168
 *
8169
 * * any code point with the East_Asian_Width="W" or East_Asian_Width="F"
8170
 *   Derived Extracted Property as described by UAX#44
8171
 * * U+4DC0 – U+4DFF (Yijing Hexagram Symbols)
8172
 * * U+1F300 – U+1F5FF (Miscellaneous Symbols and Pictographs)
8173
 * * U+1F900 – U+1F9FF (Supplemental Symbols and Pictographs)
8174
 *
8175
 * \section precision Precision
8176
 *
8177
 * Precision specifies the maximum number of characters that will be read from
8178
 * the source range. The method for counting characters is the same as above,
8179
 * with the width field.
8180
 *
8181
 * \section localized Localized
8182
 *
8183
 * The `L` flag enables localized scanning.
8184
 * Its effects are different for each type it is used with:
8185
 *
8186
 *  * For integers, it enables locale-specific thousands separators
8187
 *  * For floating-point numbers, it enables locale-specific thousands and
8188
 *    radix (decimal) separators
8189
 *  * For booleans, it enables locale-specific textual representations (for
8190
 *    `true` and `false`)
8191
 *  * For other types, it has no effect
8192
 *
8193
 * \section type Type specifier
8194
 *
8195
 * The type specifier determines how the data is to be scanned.
8196
 * The type of the argument to be scanned determines what flags are valid.
8197
 *
8198
 * \subsection type-string Type specifier: strings
8199
 *
8200
 * <table>
8201
 * <caption id="type-string-table">
8202
 * String types (`std::basic_string` and `std::basic_string_view`)
8203
 * </caption>
8204
 * <tr><th>Type</th> <th>Meaning</th></tr>
8205
 * <tr>
8206
 * <td>none, `s`</td>
8207
 * <td>
8208
 * Copies from the input until a whitespace character is encountered, or,
8209
 * if using the `<` (left) or `^` (center) alignment,
8210
 * a fill character is encountered.
8211
 * </td>
8212
 * </tr>
8213
 * <tr>
8214
 * <td>`c`</td>
8215
 * <td>
8216
 * Copies from the input until the field width is exhausted.
8217
 * Doesn't skip preceding whitespace.
8218
 * Errors if no field precision is provided.
8219
 * </td>
8220
 * </tr>
8221
 * <tr>
8222
 * <td>`[...]`</td>
8223
 * <td>
8224
 * Character set matching: copies from the input until a character not specified
8225
 * in the set is encountered. Character ranges can be specified with `-`, and
8226
 * the entire selection can be inverted with a prefix `^`. Matches and supports
8227
 * arbitrary Unicode code points.
8228
 * Doesn't skip preceding whitespace.
8229
 * </td>
8230
 * </tr>
8231
 * <tr>
8232
 * <td>`/<regex>/<flags>`</td>
8233
 * <td>
8234
 * Regular expression matching: copies from the input until the input does not
8235
 * match the regex.
8236
 * Doesn't skip preceding whitespace.
8237
 * \see regex
8238
 * </td>
8239
 * </tr>
8240
 * </table>
8241
 *
8242
 * \note `std::basic_string_view` can only be scanned if the source is
8243
 * contiguous.
8244
 *
8245
 * \subsection type-int Type specifier: integers
8246
 *
8247
 * Integer values are scanned as if by using `std::from_chars`,
8248
 * except a positive `+` sign and a base prefix (like `0x`) are always
8249
 * allowed to be present.
8250
 *
8251
 * <table>
8252
 * <caption id="type-int-table">
8253
 * Integer types (`signed` and `unsigned` variants of `char`, `short`,
8254
 * `int`, `long`, and `long long`)
8255
 * </caption>
8256
 * <tr><th>Type</th> <th>Meaning</th></tr>
8257
 * <tr>
8258
 * <td>`b`, `B`</td>
8259
 * <td>
8260
 * `std::from_chars` with base `2`. The base prefix is `0b` or `0B`.
8261
 * </td>
8262
 * </tr>
8263
 * <tr>
8264
 * <td>`o`, `O`</td>
8265
 * <td>
8266
 * `std::from_chars` with base `8`. The base prefix is `0o` or `0O`, or just
8267
 * `0`.
8268
 * </td>
8269
 * </tr>
8270
 * <tr>
8271
 * <td>`x`, `X`</td>
8272
 * <td>
8273
 * `std::from_chars` with base `16`. The base prefix is `0x` or `0X`.
8274
 * </td>
8275
 * </tr>
8276
 * <tr>
8277
 * <td>`d`</td>
8278
 * <td>
8279
 * `std::from_chars` with base `10`. No base prefix allowed.
8280
 * </td>
8281
 * </tr>
8282
 * <tr>
8283
 * <td>`u`</td>
8284
 * <td>
8285
 * `std::from_chars` with base `10`. No base prefix or `-` sign allowed.
8286
 * </td>
8287
 * </tr>
8288
 * <tr>
8289
 * <td>`i`</td>
8290
 * <td>
8291
 * Detect the base from a possible prefix, defaulting to decimal (base-10).
8292
 * </td>
8293
 * </tr>
8294
 * <tr>
8295
 * <td>`rXX` (where XX = [2, 36])</td>
8296
 * <td>
8297
 * Custom base, without a base prefix (r stands for radix).
8298
 * </td>
8299
 * </tr>
8300
 * <tr>
8301
 * <td>`c`</td>
8302
 * <td>
8303
 * Copies a character (code unit) from the input.
8304
 * </td>
8305
 * </tr>
8306
 * <tr>
8307
 * <td>none</td>
8308
 * <td>
8309
 * Same as `d`.
8310
 * </td>
8311
 * </tr>
8312
 * </table>
8313
 *
8314
 * \subsection type-char Type specifier: characters
8315
 *
8316
 * <table>
8317
 * <caption id="type-char-table">
8318
 * Character types (`char` and `wchar_t`), and code points (`char32_t`)
8319
 * </caption>
8320
 * <tr><th>Type</th> <th>Meaning</th></tr>
8321
 * <tr>
8322
 * <td>none, `c`</td>
8323
 * <td>
8324
 * Copies a character (code point for `char32_t`, code unit otherwise) from the
8325
 * input.
8326
 * </td>
8327
 * </tr>
8328
 * <tr>
8329
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
8330
 * <td>
8331
 * Same as for integers, see above \ref type-int. Not allowed for `char32_t`.
8332
 * </td>
8333
 * </tr>
8334
 * </table>
8335
 *
8336
 * \note When scanning characters (`char` and `wchar_t`), the source range is
8337
 * read a single code unit at a time, and encoding is not respected.
8338
 *
8339
 * \subsection type-float Type specifier: floating-point values
8340
 *
8341
 * Floating-point values are scanned as if by using `std::from_chars`,
8342
 * except a positive `+` sign and a base prefix (like `0x`) are always
8343
 * allowed to be present.
8344
 *
8345
 * <table>
8346
 * <caption id="type-float-table">
8347
 * Floating-point types (`float`, `double`, and `long double`)
8348
 * </caption>
8349
 * <tr><th>Type</th> <th>Meaning</th></tr>
8350
 * <tr>
8351
 * <td>`a`, `A`</td>
8352
 * <td>
8353
 * `std::from_chars` with `std::chars_format::hex`.
8354
 * Prefix `0x`/`0X` is allowed.
8355
 * </td>
8356
 * </tr>
8357
 * <tr>
8358
 * <td>`e`, `E`</td>
8359
 * <td>
8360
 * `std::from_chars` with `std::chars_format::scientific`.
8361
 * </td>
8362
 * </tr>
8363
 * <tr>
8364
 * <td>`f`, `F`</td>
8365
 * <td>
8366
 * `std::from_chars` with `std::chars_format::fixed`.
8367
 * </td>
8368
 * </tr>
8369
 * <tr>
8370
 * <td>`g`, `G`</td>
8371
 * <td>
8372
 * `std::from_chars` with `std::chars_format::general`.
8373
 * </td>
8374
 * </tr>
8375
 * <tr>
8376
 * <td>none</td>
8377
 * <td>
8378
 * `std::from_chars` with `std::chars_format::general | std::chars_format::hex`.
8379
 * Prefix `0x`/`0X` is allowed.
8380
 * </td>
8381
 * </tr>
8382
 * </table>
8383
 *
8384
 * \subsection type-bool Type specifier: booleans
8385
 *
8386
 * <table>
8387
 * <caption id="type-bool-table">
8388
 * `bool`
8389
 * </caption>
8390
 * <tr><th>Type</th> <th>Meaning</th></tr>
8391
 * <tr>
8392
 * <td>`s`</td>
8393
 * <td>
8394
 * Allows for the textual representation (`true` or `false`).
8395
 * </td>
8396
 * </tr>
8397
 * <tr>
8398
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
8399
 * <td>
8400
 * Allows for the integral/numeric representation (`0` or `1`).
8401
 * </td>
8402
 * </tr>
8403
 * <tr>
8404
 * <td>none</td>
8405
 * <td>
8406
 * Allows for both the textual and the integral/numeric representation.
8407
 * </td>
8408
 * </tr>
8409
 * </table>
8410
 */
8411
8412
namespace detail {
8413
/**
8414
 * A runtime format string
8415
 *
8416
 * \ingroup format-string
8417
 */
8418
template <typename CharT>
8419
struct basic_runtime_format_string {
8420
2.18M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v4::detail::basic_runtime_format_string<char>::basic_runtime_format_string(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
8420
291k
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v4::detail::basic_runtime_format_string<wchar_t>::basic_runtime_format_string(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
8420
1.89M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
8421
8422
    basic_runtime_format_string(const basic_runtime_format_string&) = delete;
8423
    basic_runtime_format_string(basic_runtime_format_string&&) = delete;
8424
    basic_runtime_format_string& operator=(const basic_runtime_format_string&) =
8425
        delete;
8426
    basic_runtime_format_string& operator=(basic_runtime_format_string&&) =
8427
        delete;
8428
    ~basic_runtime_format_string() = default;
8429
8430
    std::basic_string_view<CharT> str;
8431
};
8432
}  // namespace detail
8433
8434
/**
8435
 * Create a runtime format string
8436
 *
8437
 * Can be used to avoid compile-time format string checking
8438
 *
8439
 * \ingroup format-string
8440
 */
8441
inline detail::basic_runtime_format_string<char> runtime_format(
8442
    std::string_view s)
8443
291k
{
8444
291k
    return s;
8445
291k
}
8446
inline detail::basic_runtime_format_string<wchar_t> runtime_format(
8447
    std::wstring_view s)
8448
1.89M
{
8449
1.89M
    return s;
8450
1.89M
}
8451
8452
namespace detail {
8453
struct compile_string {};
8454
8455
template <typename Str>
8456
inline constexpr bool is_compile_string_v =
8457
    std::is_base_of_v<compile_string, Str>;
8458
8459
template <typename Scanner, typename ParseCtx>
8460
using dt_scanner_parse =
8461
    decltype(SCN_DECLVAL(Scanner&).parse(SCN_DECLVAL(ParseCtx&)));
8462
template <typename Scanner, typename T, typename Ctx>
8463
using dt_scanner_scan = decltype(SCN_DECLVAL(const Scanner&)
8464
                                     .scan(SCN_DECLVAL(T&), SCN_DECLVAL(Ctx&)));
8465
8466
template <typename Scanner, typename T, typename Ctx, typename ParseCtx>
8467
constexpr typename ParseCtx::iterator parse_format_specs_impl(
8468
    ParseCtx& parse_ctx)
8469
{
8470
    static_assert(
8471
        std::is_default_constructible_v<Scanner>,
8472
        "Specializations of scn::scanner must be default constructible");
8473
    static_assert(mp_valid<dt_scanner_parse, Scanner, ParseCtx>::value,
8474
                  "Specializations of scn::scanner must have a "
8475
                  "parse(ParseContext&) member function.");
8476
    static_assert(
8477
        std::is_same_v<mp_eval_or<void, dt_scanner_parse, Scanner, ParseCtx>,
8478
                       typename ParseCtx::iterator>,
8479
        "scn::scanner::parse(ParseContext&) must return "
8480
        "ParseContext::iterator. To report an error from scanner::parse, "
8481
        "either throw an exception derived from scn::scan_format_string_error, "
8482
        "or call ParseContext::on_error.");
8483
    static_assert(mp_valid<dt_scanner_scan, Scanner, T, Ctx>::value,
8484
                  "Specializations of scn::scanner must have a "
8485
                  "scan(T&, Context&) const member function.");
8486
    static_assert(
8487
        std::is_same_v<mp_eval_or<void, dt_scanner_scan, Scanner, T, Ctx>,
8488
                       scan_expected<typename Ctx::iterator>>,
8489
        "scn::scanner::scan(T&, Context&) must return "
8490
        "scan_expected<Context::iterator>.");
8491
8492
    auto s = Scanner{};
8493
    return s.parse(parse_ctx);
8494
}
8495
8496
template <typename T, typename Ctx, typename ParseCtx>
8497
constexpr typename ParseCtx::iterator parse_format_specs(ParseCtx& parse_ctx)
8498
{
8499
    using char_type = typename Ctx::char_type;
8500
    using map_result =
8501
        std::remove_reference_t<decltype(arg_mapper<char_type>().map(
8502
            SCN_DECLVAL(T&)))>;
8503
    if constexpr (std::is_base_of_v<unscannable, map_result>) {
8504
        // Error will be reported by static_assert in make_value(),
8505
        // let's not muddy the compiler error by making more of them.
8506
        return parse_ctx.begin();
8507
    }
8508
    else {
8509
        using mapped_type =
8510
            std::conditional_t<arg_type_constant<T, char_type>::value !=
8511
                                   arg_type::custom_type,
8512
                               map_result, T>;
8513
        using scanner_type = typename Ctx::template scanner_type<mapped_type>;
8514
        return parse_format_specs_impl<scanner_type, T, Ctx, ParseCtx>(
8515
            parse_ctx);
8516
    }
8517
}
8518
8519
template <typename CharT, typename Source, typename... Args>
8520
class format_string_checker {
8521
public:
8522
    using parse_context_type = compile_parse_context<CharT>;
8523
    static constexpr auto num_args = sizeof...(Args);
8524
8525
    explicit constexpr format_string_checker(
8526
        std::basic_string_view<CharT> format_str)
8527
        : m_parse_context(source_tag<Source>, format_str, num_args, m_types),
8528
          m_parse_funcs{&parse_format_specs<Args,
8529
                                            default_context<CharT>,
8530
                                            parse_context_type>...},
8531
          m_types{arg_type_constant<Args, CharT>::value...}
8532
    {
8533
    }
8534
8535
    constexpr void on_literal_text(const CharT* begin, const CharT* end)
8536
    {
8537
        // TODO: Do we want to validate Unicode in format strings?
8538
        // We're dealing with text, so we probably do.
8539
        // We could do codeunit-to-codeunit matching,
8540
        // but that could get messy wrt. whitespace matching.
8541
        // It's simpler to not allow nonsense.
8542
        while (begin != end) {
8543
            const auto len = code_point_length_by_starting_code_unit(*begin);
8544
            if (SCN_UNLIKELY(len == 0 ||
8545
                             static_cast<size_t>(end - begin) < len)) {
8546
                return on_error("Invalid encoding in format string");
8547
            }
8548
8549
            const auto cp = decode_code_point_exhaustive(
8550
                std::basic_string_view<CharT>{begin, len});
8551
            if (SCN_UNLIKELY(cp >= invalid_code_point)) {
8552
                return on_error("Invalid encoding in format string");
8553
            }
8554
8555
            begin += len;
8556
        }
8557
    }
8558
8559
    constexpr auto on_arg_id()
8560
    {
8561
        return m_parse_context.next_arg_id();
8562
    }
8563
    constexpr auto on_arg_id(std::size_t id)
8564
    {
8565
        m_parse_context.check_arg_id(id);
8566
        return id;
8567
    }
8568
8569
    constexpr void on_replacement_field(size_t id, const CharT* begin)
8570
    {
8571
        set_arg_as_read(id);
8572
8573
        auto type = m_types[id];
8574
        check_arg_can_be_read(type);
8575
8576
        if (type == arg_type::narrow_regex_matches_type ||
8577
            type == arg_type::wide_regex_matches_type) {
8578
            // clang-format off
8579
            return on_error("Regular expression needs to be specified when reading regex_matches");
8580
            // clang-format on
8581
        }
8582
        if (type == arg_type::custom_type && id < num_args) {
8583
            // Only call scanner::parse to check for errors,
8584
            // we're discarding the result.
8585
            // The advance_to dance is done to point the parse context to the
8586
            // character after the `{`; right now, it points to that
8587
            const auto beg = begin;
8588
            m_parse_context.advance_to(begin);
8589
            m_parse_funcs[id](m_parse_context);
8590
            m_parse_context.advance_to(beg);
8591
        }
8592
    }
8593
8594
    constexpr const CharT* on_format_specs(std::size_t id,
8595
                                           const CharT* begin,
8596
                                           const CharT*)
8597
    {
8598
        set_arg_as_read(id);
8599
        check_arg_can_be_read(m_types[id]);
8600
8601
        m_parse_context.advance_to(begin);
8602
        return id < num_args ? m_parse_funcs[id](m_parse_context) : begin;
8603
    }
8604
8605
    constexpr void check_args_exhausted()
8606
    {
8607
        if (num_args == 0) {
8608
            return;
8609
        }
8610
        for (auto is_set : m_visited_args) {
8611
            if (!is_set) {
8612
                return on_error("Argument list not exhausted");
8613
            }
8614
        }
8615
    }
8616
8617
    void on_error(const char* msg)
8618
    {
8619
        SCN_UNLIKELY_ATTR
8620
        m_parse_context.on_error(msg);
8621
    }
8622
8623
    // Only to satisfy the concept and eliminate compiler errors,
8624
    // because errors are reported by failing to compile on_error above
8625
    // (it's not constexpr)
8626
    constexpr scan_expected<void> get_error() const
8627
    {
8628
        return {};
8629
    }
8630
8631
private:
8632
    constexpr void set_arg_as_read(size_t id)
8633
    {
8634
        if (id >= num_args) {
8635
            return on_error("Invalid out-of-range argument ID");
8636
        }
8637
        if (m_visited_args[id]) {
8638
            return on_error("Argument with this ID already scanned");
8639
        }
8640
        m_visited_args[id] = true;
8641
    }
8642
8643
    constexpr void check_arg_can_be_read(arg_type type)
8644
    {
8645
        if ((type == arg_type::narrow_string_view_type ||
8646
             type == arg_type::wide_string_view_type) &&
8647
            !m_parse_context.is_source_contiguous()) {
8648
            // clang-format off
8649
            return on_error("Cannot read a string_view from a non-contiguous source");
8650
            // clang-format on
8651
        }
8652
        if ((type == arg_type::narrow_string_view_type ||
8653
             type == arg_type::wide_string_view_type) &&
8654
            !m_parse_context.is_source_borrowed()) {
8655
            // clang-format off
8656
            return on_error("Cannot read a string_view from a non-borrowed source");
8657
            // clang-format on
8658
        }
8659
8660
        if ((type == arg_type::narrow_regex_matches_type ||
8661
             type == arg_type::wide_regex_matches_type) &&
8662
            !m_parse_context.is_source_contiguous()) {
8663
            // clang-format off
8664
            return on_error("Cannot read a regex_matches from a non-contiguous source");
8665
            // clang-format on
8666
        }
8667
    }
8668
8669
    using parse_func = const CharT* (*)(parse_context_type&);
8670
8671
    parse_context_type m_parse_context;
8672
    parse_func m_parse_funcs[num_args > 0 ? num_args : 1];
8673
    arg_type m_types[num_args > 0 ? num_args : 1];
8674
    bool m_visited_args[num_args > 0 ? num_args : 1] = {false};
8675
};
8676
8677
template <typename Source, typename... Args, typename Str>
8678
constexpr auto check_format_string(const Str&)
8679
    -> std::enable_if_t<!is_compile_string_v<Str>>
8680
0
{
8681
    // TODO: SCN_ENFORE_COMPILE_STRING?
8682
#if 0  // SCN_ENFORE_COMPILE_STRING
8683
    static_assert(dependent_false<Str>::value,
8684
              "SCN_ENFORCE_COMPILE_STRING requires all format "
8685
              "strings to use SCN_STRING.");
8686
#endif
8687
0
}
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [9]>(char const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [3]>), void>::type scn::v4::detail::check_format_string<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double, char [3]>(char const (&) [3])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [19]>(char const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [9]>(char const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [19]>(char const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [9]>(wchar_t const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [19]>(wchar_t const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [9]>(wchar_t const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [19]>(wchar_t const (&) [19])
8688
8689
template <typename Source, typename... Args, typename Str>
8690
constexpr auto check_format_string(Str format_str)
8691
    -> std::enable_if_t<is_compile_string_v<Str>>
8692
{
8693
    using char_type = typename Str::char_type;
8694
8695
    SCN_GCC_PUSH
8696
    SCN_GCC_IGNORE("-Wconversion")
8697
    constexpr auto s = std::basic_string_view<char_type>{format_str};
8698
    SCN_GCC_POP
8699
8700
    using checker = format_string_checker<char_type, Source, Args...>;
8701
    constexpr bool invalid_format =
8702
        (parse_format_string<true>(s, checker(s)), true);
8703
    SCN_UNUSED(invalid_format);
8704
}
8705
8706
template <typename CharT, std::size_t N>
8707
constexpr std::basic_string_view<CharT> compile_string_to_view(
8708
    const CharT (&s)[N])
8709
{
8710
    return {s, N - 1};
8711
}
8712
template <typename CharT>
8713
constexpr std::basic_string_view<CharT> compile_string_to_view(
8714
    std::basic_string_view<CharT> s)
8715
{
8716
    return s;
8717
}
8718
}  // namespace detail
8719
8720
#define SCN_STRING_IMPL(s, base, expl)                                       \
8721
    [] {                                                                     \
8722
        struct SCN_COMPILE_STRING : base {                                   \
8723
            using char_type = ::scn::detail::remove_cvref_t<decltype(s[0])>; \
8724
            SCN_MAYBE_UNUSED constexpr expl                                  \
8725
            operator ::std::basic_string_view<char_type>() const             \
8726
            {                                                                \
8727
                return ::scn::detail::compile_string_to_view<char_type>(s);  \
8728
            }                                                                \
8729
        };                                                                   \
8730
        return SCN_COMPILE_STRING{};                                         \
8731
    }()
8732
8733
#define SCN_STRING(s) SCN_STRING_IMPL(s, ::scn::detail::compile_string, )
8734
8735
/**
8736
 * Compile-time format string
8737
 *
8738
 * \ingroup format-string
8739
 */
8740
template <typename CharT, typename Source, typename... Args>
8741
class basic_scan_format_string {
8742
public:
8743
    SCN_CLANG_PUSH
8744
#if SCN_CLANG >= SCN_COMPILER(10, 0, 0)
8745
    SCN_CLANG_IGNORE("-Wc++20-compat")  // false positive about consteval
8746
#endif
8747
    template <
8748
        typename S,
8749
        std::enable_if_t<
8750
            std::is_convertible_v<const S&, std::basic_string_view<CharT>> &&
8751
            detail::is_not_self<S, basic_scan_format_string>>* = nullptr>
8752
0
    SCN_CONSTEVAL basic_scan_format_string(const S& s) : m_str(s)
8753
0
    {
8754
#if SCN_HAS_CONSTEVAL
8755
        using checker = detail::format_string_checker<CharT, Source, Args...>;
8756
        const auto e = detail::parse_format_string<true>(m_str, checker(s));
8757
        SCN_UNUSED(e);
8758
#else
8759
0
        detail::check_format_string<Source, Args...>(s);
8760
0
#endif
8761
0
    }
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA9_cTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIcSF_EEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEJdEEC2IA3_cTnPNS2_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS2_17basic_string_viewIcS5_EEEsr6detailE11is_not_selfISE_SA_EEvE4typeELPv0EEESG_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA19_cTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIcSF_EEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA9_cTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIcSC_EEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA19_cTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIcSC_EEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA9_wTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIwNSE_IwEEEEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA19_wTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIwNSE_IwEEEEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeIPKwS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA9_wTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIwNSB_IwEEEEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeIPKwS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA19_wTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIwNSB_IwEEEEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
8762
    SCN_CLANG_POP
8763
8764
    template <
8765
        typename OtherSource,
8766
        std::enable_if_t<std::is_same_v<detail::remove_cvref_t<Source>,
8767
                                        detail::remove_cvref_t<OtherSource>> &&
8768
                         ranges::borrowed_range<Source> ==
8769
                             ranges::borrowed_range<OtherSource>>* = nullptr>
8770
    constexpr basic_scan_format_string(
8771
        const basic_scan_format_string<CharT, OtherSource, Args...>& other)
8772
        : m_str(other.get())
8773
    {
8774
    }
8775
8776
    basic_scan_format_string(detail::basic_runtime_format_string<CharT> r)
8777
2.18M
        : m_str(r.str)
8778
2.18M
    {
8779
2.18M
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8777
90.7k
        : m_str(r.str)
8778
90.7k
    {
8779
90.7k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8777
90.7k
        : m_str(r.str)
8778
90.7k
    {
8779
90.7k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8777
109k
        : m_str(r.str)
8778
109k
    {
8779
109k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8777
632k
        : m_str(r.str)
8778
632k
    {
8779
632k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8777
632k
        : m_str(r.str)
8778
632k
    {
8779
632k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8777
632k
        : m_str(r.str)
8778
632k
    {
8779
632k
    }
8780
8781
    constexpr operator std::basic_string_view<CharT>() const
8782
2.18M
    {
8783
2.18M
        return m_str;
8784
2.18M
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8782
90.7k
    {
8783
90.7k
        return m_str;
8784
90.7k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8782
90.7k
    {
8783
90.7k
        return m_str;
8784
90.7k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8782
109k
    {
8783
109k
        return m_str;
8784
109k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8782
632k
    {
8783
632k
        return m_str;
8784
632k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8782
632k
    {
8783
632k
        return m_str;
8784
632k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8782
632k
    {
8783
632k
        return m_str;
8784
632k
    }
Unexecuted instantiation: scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
8785
    constexpr std::basic_string_view<CharT> get() const
8786
    {
8787
        return m_str;
8788
    }
8789
8790
private:
8791
    std::basic_string_view<CharT> m_str;
8792
};
8793
8794
namespace detail {
8795
class locale_ref {
8796
#if !SCN_DISABLE_LOCALE
8797
public:
8798
2.70M
    constexpr locale_ref() = default;
8799
8800
    template <typename Locale>
8801
    explicit locale_ref(const Locale& loc);
8802
8803
    constexpr explicit operator bool() const noexcept
8804
0
    {
8805
0
        return m_locale != nullptr;
8806
0
    }
8807
8808
    template <typename Locale>
8809
    Locale get() const;
8810
8811
private:
8812
    const void* m_locale{nullptr};
8813
#else
8814
public:
8815
    constexpr locale_ref() = default;
8816
8817
    template <typename T>
8818
    constexpr explicit locale_ref(T&&)
8819
    {
8820
    }
8821
8822
    constexpr explicit operator bool() const noexcept
8823
    {
8824
        return true;
8825
    }
8826
#endif
8827
};
8828
}  // namespace detail
8829
8830
/////////////////////////////////////////////////////////////////
8831
// scan_context
8832
/////////////////////////////////////////////////////////////////
8833
8834
namespace detail {
8835
template <typename I>
8836
using apply_cmp_with_nullptr = decltype(SCN_DECLVAL(const I&) == nullptr);
8837
template <typename I>
8838
inline constexpr bool is_comparable_with_nullptr =
8839
    mp_valid_v<apply_cmp_with_nullptr, I>;
8840
8841
template <typename Args>
8842
class scan_context_base {
8843
public:
8844
    /// Get argument at index `id`
8845
    constexpr auto arg(size_t id) const noexcept
8846
1.12M
    {
8847
1.12M
        return m_args.get(id);
8848
1.12M
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::arg(unsigned long) const
Line
Count
Source
8846
157k
    {
8847
157k
        return m_args.get(id);
8848
157k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::arg(unsigned long) const
Line
Count
Source
8846
970k
    {
8847
970k
        return m_args.get(id);
8848
970k
    }
8849
8850
    constexpr const Args& args() const
8851
0
    {
8852
0
        return m_args;
8853
0
    }
Unexecuted instantiation: scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::args() const
Unexecuted instantiation: scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::args() const
8854
8855
    SCN_NODISCARD constexpr locale_ref locale() const
8856
1.09M
    {
8857
1.09M
        return m_locale;
8858
1.09M
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::locale() const
Line
Count
Source
8856
146k
    {
8857
146k
        return m_locale;
8858
146k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::locale() const
Line
Count
Source
8856
949k
    {
8857
949k
        return m_locale;
8858
949k
    }
8859
8860
protected:
8861
    scan_context_base(Args args, locale_ref loc)
8862
1.12M
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8863
1.12M
    {
8864
1.12M
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::scan_context_base(scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::detail::locale_ref)
Line
Count
Source
8862
157k
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8863
157k
    {
8864
157k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::scan_context_base(scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::detail::locale_ref)
Line
Count
Source
8862
970k
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8863
970k
    {
8864
970k
    }
8865
8866
    Args m_args;
8867
    locale_ref m_locale;
8868
};
8869
}  // namespace detail
8870
8871
/**
8872
 * \defgroup ctx Contexts and scanners
8873
 *
8874
 * \brief Lower-level APIs used for scanning individual values
8875
 *
8876
 * \section user-defined Scanning user-defined types
8877
 *
8878
 * User-defined types can be scanned by specializing the class template
8879
 * `scn::scanner`.
8880
 *
8881
 * \code{.cpp}
8882
 * struct mytype {
8883
 *   int key;
8884
 *   std::string value;
8885
 * };
8886
 *
8887
 * template <>
8888
 * struct scn::scanner<mytype> {
8889
 *   template <typename ParseContext>
8890
 *   constexpr auto parse(ParseCtx& pctx)
8891
 *     -> typename ParseContext::iterator {
8892
 *     // parse() implementation just returning begin():
8893
 *     // only permits empty format specifiers
8894
 *     return pctx.begin();
8895
 *   }
8896
 *
8897
 *   template <typename Context>
8898
 *   auto scan(mytype& val, Context& ctx)
8899
 *     -> scan_expected<typename Context::iterator> {
8900
 *     return scn::scan<int, std::string>(ctx.range(), "{}: {}")
8901
 *       .transform([&](auto result) {
8902
 *         std::tie(val.key, val.value) = std::move(result->values());
8903
 *         return result.begin();
8904
 *       });
8905
 *   }
8906
 * };
8907
 * \endcode
8908
 *
8909
 * See also
8910
 * \ref g-usertypes
8911
 */
8912
8913
/**
8914
 * Scanning context.
8915
 *
8916
 * \ingroup ctx
8917
 */
8918
template <typename Range, typename CharT>
8919
class basic_scan_context
8920
    : public detail::scan_context_base<
8921
          basic_scan_args<basic_scan_context<Range, CharT>>> {
8922
    using base = detail::scan_context_base<basic_scan_args<basic_scan_context>>;
8923
8924
    using args_type = basic_scan_args<basic_scan_context>;
8925
    using arg_type = basic_scan_arg<basic_scan_context>;
8926
8927
public:
8928
    /// Character type of the input
8929
    using char_type = CharT;
8930
    using range_type = std::conditional_t<
8931
        std::is_same_v<Range, detail::buffer_range_tag>,
8932
        typename detail::basic_scan_buffer<char_type>::range_type,
8933
        Range>;
8934
    using iterator = ranges::iterator_t<range_type>;
8935
    using sentinel = ranges::sentinel_t<range_type>;
8936
    using parse_context_type = basic_scan_parse_context<char_type>;
8937
8938
    /**
8939
     * The scanner type associated with this scanning context.
8940
     */
8941
    template <typename T>
8942
    using scanner_type = scanner<T, char_type>;
8943
8944
    constexpr basic_scan_context(iterator curr,
8945
                                 args_type a,
8946
                                 detail::locale_ref loc = {})
8947
382k
        : base(SCN_MOVE(a), loc), m_current(curr)
8948
382k
    {
8949
382k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::basic_scan_context(scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::detail::locale_ref)
Line
Count
Source
8947
58.7k
        : base(SCN_MOVE(a), loc), m_current(curr)
8948
58.7k
    {
8949
58.7k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::basic_scan_context(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::detail::locale_ref)
Line
Count
Source
8947
323k
        : base(SCN_MOVE(a), loc), m_current(curr)
8948
323k
    {
8949
323k
    }
8950
8951
    basic_scan_context(const basic_scan_context&) = delete;
8952
    basic_scan_context& operator=(const basic_scan_context&) = delete;
8953
8954
    basic_scan_context(basic_scan_context&&) = default;
8955
    basic_scan_context& operator=(basic_scan_context&&) = default;
8956
    ~basic_scan_context() = default;
8957
8958
    /**
8959
     * Returns an iterator pointing to the current position in the source
8960
     * range.
8961
     */
8962
    constexpr iterator begin() const
8963
1.10M
    {
8964
1.10M
        return m_current;
8965
1.10M
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::begin() const
Line
Count
Source
8963
163k
    {
8964
163k
        return m_current;
8965
163k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::begin() const
Line
Count
Source
8963
945k
    {
8964
945k
        return m_current;
8965
945k
    }
8966
8967
    /**
8968
     * Returns a sentinel pointing to the end of the source range.
8969
     */
8970
    constexpr sentinel end() const
8971
371k
    {
8972
371k
        return ranges::default_sentinel;
8973
371k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::end() const
Line
Count
Source
8971
55.0k
    {
8972
55.0k
        return ranges::default_sentinel;
8973
55.0k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::end() const
Line
Count
Source
8971
316k
    {
8972
316k
        return ranges::default_sentinel;
8973
316k
    }
8974
8975
    /**
8976
     * Returns a subrange over `[begin(), end())`
8977
     */
8978
    constexpr auto range() const
8979
371k
    {
8980
371k
        return ranges::subrange{begin(), end()};
8981
371k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::range() const
Line
Count
Source
8979
55.0k
    {
8980
55.0k
        return ranges::subrange{begin(), end()};
8981
55.0k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::range() const
Line
Count
Source
8979
316k
    {
8980
316k
        return ranges::subrange{begin(), end()};
8981
316k
    }
8982
8983
    /// Advances the beginning of the source range to `it`
8984
    void advance_to(iterator it)
8985
355k
    {
8986
355k
        m_current = SCN_MOVE(it);
8987
355k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::advance_to(scn::v4::detail::basic_scan_buffer<char>::forward_iterator)
Line
Count
Source
8985
49.6k
    {
8986
49.6k
        m_current = SCN_MOVE(it);
8987
49.6k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::advance_to(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator)
Line
Count
Source
8985
305k
    {
8986
305k
        m_current = SCN_MOVE(it);
8987
305k
    }
8988
8989
private:
8990
    iterator m_current;
8991
};
8992
8993
namespace detail {
8994
template <typename T, typename ParseCtx>
8995
constexpr typename ParseCtx::iterator scanner_parse_for_builtin_type(
8996
    ParseCtx& pctx,
8997
    format_specs& specs);
8998
8999
template <typename T, typename Context>
9000
scan_expected<typename Context::iterator>
9001
scanner_scan_for_builtin_type(T& val, Context& ctx, const format_specs& specs);
9002
}  // namespace detail
9003
9004
/////////////////////////////////////////////////////////////////
9005
// scanner
9006
/////////////////////////////////////////////////////////////////
9007
9008
/**
9009
 * `scanner` specialization for all built-in types
9010
 *
9011
 * \ingroup ctx
9012
 */
9013
template <typename T, typename CharT>
9014
struct scanner<T,
9015
               CharT,
9016
               std::enable_if_t<detail::arg_type_constant<T, CharT>::value !=
9017
                                    detail::arg_type::custom_type &&
9018
                                !detail::is_type_disabled<T>>> {
9019
    template <typename ParseCtx>
9020
    constexpr auto parse(ParseCtx& pctx) -> typename ParseCtx::iterator
9021
    {
9022
        return detail::scanner_parse_for_builtin_type<T>(pctx, m_specs);
9023
    }
9024
9025
    template <typename Context>
9026
    scan_expected<typename Context::iterator> scan(T& val, Context& ctx) const
9027
    {
9028
        return detail::scanner_scan_for_builtin_type(val, ctx, m_specs);
9029
    }
9030
9031
private:
9032
    detail::format_specs m_specs;
9033
};
9034
9035
namespace detail {
9036
template <typename T, typename ParseCtx>
9037
constexpr typename ParseCtx::iterator scanner_parse_for_builtin_type(
9038
    ParseCtx& pctx,
9039
    format_specs& specs)
9040
{
9041
    using char_type = typename ParseCtx::char_type;
9042
9043
    auto begin = pctx.begin();
9044
    const auto end = pctx.end();
9045
    if (begin == end) {
9046
        return begin;
9047
    }
9048
9049
    using handler_type = specs_setter;
9050
    const auto type = arg_type_constant<T, char_type>::value;
9051
    auto checker =
9052
        detail::specs_checker<handler_type>(handler_type(specs), type);
9053
9054
    const auto it =
9055
        detail::parse_format_specs(to_address(begin), to_address(end), checker);
9056
9057
    switch (type) {
9058
        case arg_type::none_type:
9059
            SCN_FALLTHROUGH;
9060
        case arg_type::custom_type:
9061
            SCN_ENSURE(false);
9062
            break;
9063
9064
        case arg_type::bool_type:
9065
            check_bool_type_specs(specs, checker);
9066
            break;
9067
9068
        case arg_type::schar_type:
9069
        case arg_type::short_type:
9070
        case arg_type::int_type:
9071
        case arg_type::long_type:
9072
        case arg_type::llong_type:
9073
        case arg_type::uchar_type:
9074
        case arg_type::ushort_type:
9075
        case arg_type::uint_type:
9076
        case arg_type::ulong_type:
9077
        case arg_type::ullong_type:
9078
            check_int_type_specs(specs, checker);
9079
            break;
9080
9081
        case arg_type::narrow_character_type:
9082
        case arg_type::wide_character_type:
9083
        case arg_type::code_point_type:
9084
            check_char_type_specs(specs, checker);
9085
            break;
9086
9087
        case arg_type::float_type:
9088
        case arg_type::double_type:
9089
        case arg_type::ldouble_type:
9090
            check_float_type_specs(specs, checker);
9091
            break;
9092
9093
        case arg_type::narrow_string_type:
9094
        case arg_type::narrow_string_view_type:
9095
        case arg_type::wide_string_type:
9096
        case arg_type::wide_string_view_type:
9097
            check_string_type_specs(specs, checker);
9098
            break;
9099
9100
        case arg_type::pointer_type:
9101
            check_pointer_type_specs(specs, checker);
9102
            break;
9103
9104
        case arg_type::narrow_regex_matches_type:
9105
        case arg_type::wide_regex_matches_type:
9106
            check_regex_type_specs(specs, checker);
9107
            break;
9108
9109
            SCN_CLANG_PUSH
9110
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9111
9112
        default:
9113
            SCN_ENSURE(false);
9114
            SCN_UNREACHABLE;
9115
9116
            SCN_CLANG_POP
9117
    }
9118
9119
    if (specs.type == presentation_type::regex ||
9120
        specs.type == presentation_type::regex_escaped) {
9121
        if (!pctx.is_source_contiguous()) {
9122
            SCN_UNLIKELY_ATTR
9123
            // clang-format off
9124
            checker.on_error("Cannot read a regex from a non-contiguous source");
9125
            // clang-format on
9126
        }
9127
        if (!pctx.is_source_borrowed()) {
9128
            SCN_UNLIKELY_ATTR
9129
            checker.on_error("Cannot read a regex from a non-borrowed source");
9130
        }
9131
    }
9132
9133
    return it;
9134
}
9135
}  // namespace detail
9136
9137
/**
9138
 * Type for discarding any scanned value.
9139
 * Example:
9140
 *
9141
 * \code{.cpp}
9142
 * auto r = scn::scan<scn::discard<int>>("42", "{}");
9143
 * // r.has_value() == true
9144
 * // decltype(r->value()) is scn::discard<int>
9145
 * \endcode
9146
 *
9147
 * \ingroup format-string
9148
 */
9149
template <typename T>
9150
struct discard {
9151
    constexpr discard() = default;
9152
9153
    constexpr discard(const T&) noexcept {}
9154
    constexpr discard(T&&) noexcept {}
9155
9156
    constexpr discard& operator=(const T&) noexcept
9157
    {
9158
        return *this;
9159
    }
9160
    constexpr discard& operator=(T&&) noexcept
9161
    {
9162
        return *this;
9163
    }
9164
};
9165
9166
template <typename T, typename CharT>
9167
struct scanner<discard<T>, CharT> : public scanner<T, CharT> {
9168
    template <typename Context>
9169
    auto scan(discard<T>&, Context& ctx) const
9170
    {
9171
        T val{};
9172
        return scanner<T, CharT>::scan(val, ctx);
9173
    }
9174
};
9175
9176
namespace detail {
9177
template <typename Range>
9178
scan_expected<ranges::iterator_t<Range>> internal_skip_classic_whitespace(
9179
    Range r,
9180
    bool allow_exhaustion);
9181
9182
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(T, Context) \
9183
    extern template scan_expected<Context::iterator>         \
9184
    scanner_scan_for_builtin_type(T&, Context&, const format_specs&);
9185
9186
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(Context)                   \
9187
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(char, Context)                \
9188
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wchar_t, Context)             \
9189
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
9190
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
9191
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(short, Context)               \
9192
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(int, Context)                 \
9193
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long, Context)                \
9194
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long long, Context)           \
9195
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned char, Context)       \
9196
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned short, Context)      \
9197
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned int, Context)        \
9198
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long, Context)       \
9199
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long long, Context)  \
9200
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(float, Context)               \
9201
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(double, Context)              \
9202
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long double, Context)         \
9203
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::string, Context)         \
9204
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::wstring, Context)        \
9205
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(                              \
9206
        std::basic_string_view<Context::char_type>, Context)               \
9207
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(regex_matches, Context)       \
9208
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wregex_matches, Context)      \
9209
    extern template scan_expected<ranges::iterator_t<Context::range_type>> \
9210
    internal_skip_classic_whitespace(Context::range_type, bool);
9211
9212
SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(scan_context)
9213
9214
}  // namespace detail
9215
9216
/////////////////////////////////////////////////////////////////
9217
// visit_scan_arg
9218
/////////////////////////////////////////////////////////////////
9219
9220
namespace detail {
9221
9222
template <typename Visitor, typename Ctx>
9223
constexpr decltype(auto) visit_impl(Visitor&& vis, basic_scan_arg<Ctx>& arg)
9224
2.68M
{
9225
2.68M
#define SCN_VISIT(Type)                                                \
9226
9.64M
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
9.64M
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
9.64M
    }                                                                  \
9229
9.64M
    else {                                                             \
9230
9.64M
        return vis(monostate_val);                                     \
9231
9.64M
    }
9232
9233
2.68M
    monostate monostate_val{};
9234
9235
2.68M
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
107k
        case detail::arg_type::narrow_string_view_type:
9273
107k
            SCN_VISIT(std::string_view);
9274
347k
        case detail::arg_type::narrow_string_type:
9275
347k
            SCN_VISIT(std::string);
9276
1.12M
        case detail::arg_type::wide_string_view_type:
9277
1.12M
            SCN_VISIT(std::wstring_view);
9278
2.68M
        case detail::arg_type::wide_string_type:
9279
2.68M
            SCN_VISIT(std::wstring);
9280
2.68M
        case detail::arg_type::narrow_regex_matches_type:
9281
2.68M
            SCN_VISIT(regex_matches);
9282
2.68M
        case detail::arg_type::wide_regex_matches_type:
9283
2.68M
            SCN_VISIT(wregex_matches);
9284
9285
2.68M
        case detail::arg_type::custom_type:
9286
2.68M
#if !SCN_DISABLE_TYPE_CUSTOM
9287
2.68M
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
2.68M
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
2.68M
            SCN_CLANG_POP
9303
2.68M
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
9224
124k
{
9225
124k
#define SCN_VISIT(Type)                                                \
9226
124k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
124k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
124k
    }                                                                  \
9229
124k
    else {                                                             \
9230
124k
        return vis(monostate_val);                                     \
9231
124k
    }
9232
9233
124k
    monostate monostate_val{};
9234
9235
124k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
62.1k
        case detail::arg_type::narrow_string_view_type:
9273
62.1k
            SCN_VISIT(std::string_view);
9274
124k
        case detail::arg_type::narrow_string_type:
9275
124k
            SCN_VISIT(std::string);
9276
124k
        case detail::arg_type::wide_string_view_type:
9277
124k
            SCN_VISIT(std::wstring_view);
9278
124k
        case detail::arg_type::wide_string_type:
9279
124k
            SCN_VISIT(std::wstring);
9280
124k
        case detail::arg_type::narrow_regex_matches_type:
9281
124k
            SCN_VISIT(regex_matches);
9282
124k
        case detail::arg_type::wide_regex_matches_type:
9283
124k
            SCN_VISIT(wregex_matches);
9284
9285
124k
        case detail::arg_type::custom_type:
9286
124k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
124k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
124k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
124k
            SCN_CLANG_POP
9303
124k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
9224
76.3k
{
9225
76.3k
#define SCN_VISIT(Type)                                                \
9226
76.3k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
76.3k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
76.3k
    }                                                                  \
9229
76.3k
    else {                                                             \
9230
76.3k
        return vis(monostate_val);                                     \
9231
76.3k
    }
9232
9233
76.3k
    monostate monostate_val{};
9234
9235
76.3k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
76.3k
        case detail::arg_type::narrow_string_type:
9275
76.3k
            SCN_VISIT(std::string);
9276
76.3k
        case detail::arg_type::wide_string_view_type:
9277
76.3k
            SCN_VISIT(std::wstring_view);
9278
76.3k
        case detail::arg_type::wide_string_type:
9279
76.3k
            SCN_VISIT(std::wstring);
9280
76.3k
        case detail::arg_type::narrow_regex_matches_type:
9281
76.3k
            SCN_VISIT(regex_matches);
9282
76.3k
        case detail::arg_type::wide_regex_matches_type:
9283
76.3k
            SCN_VISIT(wregex_matches);
9284
9285
76.3k
        case detail::arg_type::custom_type:
9286
76.3k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
76.3k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
76.3k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
76.3k
            SCN_CLANG_POP
9303
76.3k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
9224
91.5k
{
9225
91.5k
#define SCN_VISIT(Type)                                                \
9226
91.5k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
91.5k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
91.5k
    }                                                                  \
9229
91.5k
    else {                                                             \
9230
91.5k
        return vis(monostate_val);                                     \
9231
91.5k
    }
9232
9233
91.5k
    monostate monostate_val{};
9234
9235
91.5k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
45.7k
        case detail::arg_type::narrow_string_view_type:
9273
45.7k
            SCN_VISIT(std::string_view);
9274
91.5k
        case detail::arg_type::narrow_string_type:
9275
91.5k
            SCN_VISIT(std::string);
9276
91.5k
        case detail::arg_type::wide_string_view_type:
9277
91.5k
            SCN_VISIT(std::wstring_view);
9278
91.5k
        case detail::arg_type::wide_string_type:
9279
91.5k
            SCN_VISIT(std::wstring);
9280
91.5k
        case detail::arg_type::narrow_regex_matches_type:
9281
91.5k
            SCN_VISIT(regex_matches);
9282
91.5k
        case detail::arg_type::wide_regex_matches_type:
9283
91.5k
            SCN_VISIT(wregex_matches);
9284
9285
91.5k
        case detail::arg_type::custom_type:
9286
91.5k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
91.5k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
91.5k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
91.5k
            SCN_CLANG_POP
9303
91.5k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
9224
55.0k
{
9225
55.0k
#define SCN_VISIT(Type)                                                \
9226
55.0k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
55.0k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
55.0k
    }                                                                  \
9229
55.0k
    else {                                                             \
9230
55.0k
        return vis(monostate_val);                                     \
9231
55.0k
    }
9232
9233
55.0k
    monostate monostate_val{};
9234
9235
55.0k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
55.0k
        case detail::arg_type::narrow_string_type:
9275
55.0k
            SCN_VISIT(std::string);
9276
55.0k
        case detail::arg_type::wide_string_view_type:
9277
55.0k
            SCN_VISIT(std::wstring_view);
9278
55.0k
        case detail::arg_type::wide_string_type:
9279
55.0k
            SCN_VISIT(std::wstring);
9280
55.0k
        case detail::arg_type::narrow_regex_matches_type:
9281
55.0k
            SCN_VISIT(regex_matches);
9282
55.0k
        case detail::arg_type::wide_regex_matches_type:
9283
55.0k
            SCN_VISIT(wregex_matches);
9284
9285
55.0k
        case detail::arg_type::custom_type:
9286
55.0k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
55.0k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
55.0k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
55.0k
            SCN_CLANG_POP
9303
55.0k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
9224
926k
{
9225
926k
#define SCN_VISIT(Type)                                                \
9226
926k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
926k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
926k
    }                                                                  \
9229
926k
    else {                                                             \
9230
926k
        return vis(monostate_val);                                     \
9231
926k
    }
9232
9233
926k
    monostate monostate_val{};
9234
9235
926k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
0
        case detail::arg_type::narrow_string_type:
9275
0
            SCN_VISIT(std::string);
9276
463k
        case detail::arg_type::wide_string_view_type:
9277
463k
            SCN_VISIT(std::wstring_view);
9278
926k
        case detail::arg_type::wide_string_type:
9279
926k
            SCN_VISIT(std::wstring);
9280
926k
        case detail::arg_type::narrow_regex_matches_type:
9281
926k
            SCN_VISIT(regex_matches);
9282
926k
        case detail::arg_type::wide_regex_matches_type:
9283
926k
            SCN_VISIT(wregex_matches);
9284
9285
926k
        case detail::arg_type::custom_type:
9286
926k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
926k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
926k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
926k
            SCN_CLANG_POP
9303
926k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
9224
632k
{
9225
632k
#define SCN_VISIT(Type)                                                \
9226
632k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
632k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
632k
    }                                                                  \
9229
632k
    else {                                                             \
9230
632k
        return vis(monostate_val);                                     \
9231
632k
    }
9232
9233
632k
    monostate monostate_val{};
9234
9235
632k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
0
        case detail::arg_type::narrow_string_type:
9275
0
            SCN_VISIT(std::string);
9276
316k
        case detail::arg_type::wide_string_view_type:
9277
316k
            SCN_VISIT(std::wstring_view);
9278
632k
        case detail::arg_type::wide_string_type:
9279
632k
            SCN_VISIT(std::wstring);
9280
632k
        case detail::arg_type::narrow_regex_matches_type:
9281
632k
            SCN_VISIT(regex_matches);
9282
632k
        case detail::arg_type::wide_regex_matches_type:
9283
632k
            SCN_VISIT(wregex_matches);
9284
9285
632k
        case detail::arg_type::custom_type:
9286
632k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
632k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
632k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
632k
            SCN_CLANG_POP
9303
632k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
9224
463k
{
9225
463k
#define SCN_VISIT(Type)                                                \
9226
463k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
463k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
463k
    }                                                                  \
9229
463k
    else {                                                             \
9230
463k
        return vis(monostate_val);                                     \
9231
463k
    }
9232
9233
463k
    monostate monostate_val{};
9234
9235
463k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
0
        case detail::arg_type::narrow_string_type:
9275
0
            SCN_VISIT(std::string);
9276
0
        case detail::arg_type::wide_string_view_type:
9277
0
            SCN_VISIT(std::wstring_view);
9278
463k
        case detail::arg_type::wide_string_type:
9279
463k
            SCN_VISIT(std::wstring);
9280
463k
        case detail::arg_type::narrow_regex_matches_type:
9281
463k
            SCN_VISIT(regex_matches);
9282
463k
        case detail::arg_type::wide_regex_matches_type:
9283
463k
            SCN_VISIT(wregex_matches);
9284
9285
463k
        case detail::arg_type::custom_type:
9286
463k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
463k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
463k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
463k
            SCN_CLANG_POP
9303
463k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
9224
316k
{
9225
316k
#define SCN_VISIT(Type)                                                \
9226
316k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
9227
316k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9228
316k
    }                                                                  \
9229
316k
    else {                                                             \
9230
316k
        return vis(monostate_val);                                     \
9231
316k
    }
9232
9233
316k
    monostate monostate_val{};
9234
9235
316k
    switch (get_arg_type(arg)) {
9236
0
        case detail::arg_type::schar_type:
9237
0
            SCN_VISIT(signed char);
9238
0
        case detail::arg_type::short_type:
9239
0
            SCN_VISIT(short);
9240
0
        case detail::arg_type::int_type:
9241
0
            SCN_VISIT(int);
9242
0
        case detail::arg_type::long_type:
9243
0
            SCN_VISIT(long);
9244
0
        case detail::arg_type::llong_type:
9245
0
            SCN_VISIT(long long);
9246
0
        case detail::arg_type::uchar_type:
9247
0
            SCN_VISIT(unsigned char);
9248
0
        case detail::arg_type::ushort_type:
9249
0
            SCN_VISIT(unsigned short);
9250
0
        case detail::arg_type::uint_type:
9251
0
            SCN_VISIT(unsigned);
9252
0
        case detail::arg_type::ulong_type:
9253
0
            SCN_VISIT(unsigned long);
9254
0
        case detail::arg_type::ullong_type:
9255
0
            SCN_VISIT(unsigned long long);
9256
0
        case detail::arg_type::pointer_type:
9257
0
            SCN_VISIT(void*);
9258
0
        case detail::arg_type::bool_type:
9259
0
            SCN_VISIT(bool);
9260
0
        case detail::arg_type::narrow_character_type:
9261
0
            SCN_VISIT(char);
9262
0
        case detail::arg_type::wide_character_type:
9263
0
            SCN_VISIT(wchar_t);
9264
0
        case detail::arg_type::code_point_type:
9265
0
            SCN_VISIT(char32_t);
9266
0
        case detail::arg_type::float_type:
9267
0
            SCN_VISIT(float);
9268
0
        case detail::arg_type::double_type:
9269
0
            SCN_VISIT(double);
9270
0
        case detail::arg_type::ldouble_type:
9271
0
            SCN_VISIT(long double);
9272
0
        case detail::arg_type::narrow_string_view_type:
9273
0
            SCN_VISIT(std::string_view);
9274
0
        case detail::arg_type::narrow_string_type:
9275
0
            SCN_VISIT(std::string);
9276
0
        case detail::arg_type::wide_string_view_type:
9277
0
            SCN_VISIT(std::wstring_view);
9278
316k
        case detail::arg_type::wide_string_type:
9279
316k
            SCN_VISIT(std::wstring);
9280
316k
        case detail::arg_type::narrow_regex_matches_type:
9281
316k
            SCN_VISIT(regex_matches);
9282
316k
        case detail::arg_type::wide_regex_matches_type:
9283
316k
            SCN_VISIT(wregex_matches);
9284
9285
316k
        case detail::arg_type::custom_type:
9286
316k
#if !SCN_DISABLE_TYPE_CUSTOM
9287
316k
            return vis(typename basic_scan_arg<Ctx>::handle(
9288
316k
                get_arg_value(arg).custom_value));
9289
#else
9290
            return vis(monostate_val);
9291
#endif
9292
9293
0
            SCN_CLANG_PUSH
9294
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9295
9296
0
            SCN_UNLIKELY_ATTR
9297
0
        case detail::arg_type::none_type:
9298
0
        default: {
9299
0
            return vis(monostate_val);
9300
0
        }
9301
9302
316k
            SCN_CLANG_POP
9303
316k
    }
9304
9305
0
#undef SCN_VISIT
9306
9307
0
    SCN_ENSURE(false);
9308
0
    SCN_UNREACHABLE;
9309
0
}
9310
9311
}  // namespace detail
9312
9313
template <typename Visitor, typename Ctx>
9314
[[deprecated("Use basic_scan_arg::visit instead")]] constexpr decltype(auto)
9315
visit_scan_arg(Visitor&& vis, basic_scan_arg<Ctx>& arg)
9316
{
9317
    return detail::visit_impl(SCN_FWD(vis), arg);
9318
}
9319
9320
template <typename Context>
9321
template <typename Visitor>
9322
constexpr decltype(auto) basic_scan_arg<Context>::visit(Visitor&& vis)
9323
2.68M
{
9324
2.68M
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
2.68M
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&)
Line
Count
Source
9323
124k
{
9324
124k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
124k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
Line
Count
Source
9323
76.3k
{
9324
76.3k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
76.3k
}
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&)
Line
Count
Source
9323
91.5k
{
9324
91.5k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
91.5k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
Line
Count
Source
9323
55.0k
{
9324
55.0k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
55.0k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&)
Line
Count
Source
9323
926k
{
9324
926k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
926k
}
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&)
Line
Count
Source
9323
632k
{
9324
632k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
632k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
Line
Count
Source
9323
463k
{
9324
463k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
463k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
Line
Count
Source
9323
316k
{
9324
316k
    return detail::visit_impl(SCN_FWD(vis), *this);
9325
316k
}
9326
9327
template <typename Context>
9328
template <typename R, typename Visitor>
9329
constexpr R basic_scan_arg<Context>::visit(Visitor&& vis)
9330
{
9331
    return detail::visit_impl(SCN_FWD(vis), *this);
9332
}
9333
9334
/////////////////////////////////////////////////////////////////
9335
// vscan
9336
/////////////////////////////////////////////////////////////////
9337
9338
/**
9339
 * \defgroup vscan Type-erased scanning API
9340
 *
9341
 * \brief Lower-level scanning API with type-erased arguments
9342
 */
9343
9344
namespace detail {
9345
template <typename Source>
9346
using scan_result_value_type =
9347
    std::conditional_t<std::is_same_v<remove_cvref_t<Source>, std::FILE*>,
9348
                       std::FILE*,
9349
                       borrowed_tail_subrange_t<Source>>;
9350
}
9351
9352
/**
9353
 * Result type returned by `vscan`.
9354
 *
9355
 * The value type of the `scan_expected` is `FILE*` if `Source` is `FILE*`,
9356
 * `detail::borrowed_tail_subrange_t<Source>` otherwise.
9357
 *
9358
 * \ingroup vscan
9359
 */
9360
template <typename Source>
9361
using vscan_result = scan_expected<detail::scan_result_value_type<Source>>;
9362
9363
namespace detail {
9364
scan_expected<std::ptrdiff_t> vscan_impl(std::string_view source,
9365
                                         std::string_view format,
9366
                                         scan_args args);
9367
scan_expected<std::ptrdiff_t> vscan_impl(scan_buffer& source,
9368
                                         std::string_view format,
9369
                                         scan_args args);
9370
9371
scan_expected<std::ptrdiff_t> vscan_impl(std::wstring_view source,
9372
                                         std::wstring_view format,
9373
                                         wscan_args args);
9374
scan_expected<std::ptrdiff_t> vscan_impl(wscan_buffer& source,
9375
                                         std::wstring_view format,
9376
                                         wscan_args args);
9377
9378
#if !SCN_DISABLE_LOCALE
9379
template <typename Locale>
9380
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9381
                                                   std::string_view source,
9382
                                                   std::string_view format,
9383
                                                   scan_args args);
9384
template <typename Locale>
9385
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9386
                                                   scan_buffer& source,
9387
                                                   std::string_view format,
9388
                                                   scan_args args);
9389
9390
template <typename Locale>
9391
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9392
                                                   std::wstring_view source,
9393
                                                   std::wstring_view format,
9394
                                                   wscan_args args);
9395
template <typename Locale>
9396
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9397
                                                   wscan_buffer& source,
9398
                                                   std::wstring_view format,
9399
                                                   wscan_args args);
9400
#endif
9401
9402
scan_expected<std::ptrdiff_t> vscan_value_impl(
9403
    std::string_view source,
9404
    basic_scan_arg<scan_context> arg);
9405
scan_expected<std::ptrdiff_t> vscan_value_impl(
9406
    scan_buffer& source,
9407
    basic_scan_arg<scan_context> arg);
9408
9409
scan_expected<std::ptrdiff_t> vscan_value_impl(
9410
    std::wstring_view source,
9411
    basic_scan_arg<wscan_context> arg);
9412
scan_expected<std::ptrdiff_t> vscan_value_impl(
9413
    wscan_buffer& source,
9414
    basic_scan_arg<wscan_context> arg);
9415
9416
template <typename Range, typename CharT>
9417
auto vscan_generic(Range&& range,
9418
                   std::basic_string_view<CharT> format,
9419
                   basic_scan_args<detail::default_context<CharT>> args)
9420
    -> vscan_result<Range>
9421
1.09M
{
9422
1.09M
    auto buffer = make_scan_buffer(range);
9423
9424
1.09M
    auto result = vscan_impl(buffer, format, args);
9425
1.09M
    if (SCN_UNLIKELY(!result)) {
9426
48.9k
        return unexpected(result.error());
9427
48.9k
    }
9428
1.04M
    return make_vscan_result_range(SCN_FWD(range), *result);
9429
1.09M
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Line
Count
Source
9421
90.7k
{
9422
90.7k
    auto buffer = make_scan_buffer(range);
9423
9424
90.7k
    auto result = vscan_impl(buffer, format, args);
9425
90.7k
    if (SCN_UNLIKELY(!result)) {
9426
10.8k
        return unexpected(result.error());
9427
10.8k
    }
9428
79.9k
    return make_vscan_result_range(SCN_FWD(range), *result);
9429
90.7k
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESV_EEEE
Line
Count
Source
9421
54.8k
{
9422
54.8k
    auto buffer = make_scan_buffer(range);
9423
9424
54.8k
    auto result = vscan_impl(buffer, format, args);
9425
54.8k
    if (SCN_UNLIKELY(!result)) {
9426
5.43k
        return unexpected(result.error());
9427
5.43k
    }
9428
49.3k
    return make_vscan_result_range(SCN_FWD(range), *result);
9429
54.8k
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Line
Count
Source
9421
632k
{
9422
632k
    auto buffer = make_scan_buffer(range);
9423
9424
632k
    auto result = vscan_impl(buffer, format, args);
9425
632k
    if (SCN_UNLIKELY(!result)) {
9426
21.7k
        return unexpected(result.error());
9427
21.7k
    }
9428
610k
    return make_vscan_result_range(SCN_FWD(range), *result);
9429
632k
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESV_EEEE
Line
Count
Source
9421
316k
{
9422
316k
    auto buffer = make_scan_buffer(range);
9423
9424
316k
    auto result = vscan_impl(buffer, format, args);
9425
316k
    if (SCN_UNLIKELY(!result)) {
9426
10.8k
        return unexpected(result.error());
9427
10.8k
    }
9428
305k
    return make_vscan_result_range(SCN_FWD(range), *result);
9429
316k
}
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS1_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIT0_NSD_11char_traitsISS_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESS_EEEE
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericIRNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS3_17basic_string_viewIT0_NS5_ISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS1_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIT0_NSD_11char_traitsISS_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESS_EEEE
9430
9431
template <typename Locale, typename Range, typename CharT>
9432
auto vscan_localized_generic(
9433
    const Locale& loc,
9434
    Range&& range,
9435
    std::basic_string_view<CharT> format,
9436
    basic_scan_args<detail::default_context<CharT>> args) -> vscan_result<Range>
9437
1.09M
{
9438
1.09M
#if !SCN_DISABLE_LOCALE
9439
1.09M
    auto buffer = detail::make_scan_buffer(range);
9440
9441
1.09M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9442
1.09M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9443
1.09M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9444
9445
1.09M
    if (SCN_UNLIKELY(!result)) {
9446
48.9k
        return unexpected(result.error());
9447
48.9k
    }
9448
1.04M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9449
#else
9450
    static_assert(dependent_false<Locale>::value,
9451
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9452
9453
    return {};
9454
#endif
9455
1.09M
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcSA_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESU_EEEE
Line
Count
Source
9437
90.7k
{
9438
90.7k
#if !SCN_DISABLE_LOCALE
9439
90.7k
    auto buffer = detail::make_scan_buffer(range);
9440
9441
90.7k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9442
90.7k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9443
90.7k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9444
9445
90.7k
    if (SCN_UNLIKELY(!result)) {
9446
10.8k
        return unexpected(result.error());
9447
10.8k
    }
9448
79.9k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9449
#else
9450
    static_assert(dependent_false<Locale>::value,
9451
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9452
9453
    return {};
9454
#endif
9455
90.7k
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESZ_EEEE
Line
Count
Source
9437
54.8k
{
9438
54.8k
#if !SCN_DISABLE_LOCALE
9439
54.8k
    auto buffer = detail::make_scan_buffer(range);
9440
9441
54.8k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9442
54.8k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9443
54.8k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9444
9445
54.8k
    if (SCN_UNLIKELY(!result)) {
9446
5.43k
        return unexpected(result.error());
9447
5.43k
    }
9448
49.3k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9449
#else
9450
    static_assert(dependent_false<Locale>::value,
9451
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9452
9453
    return {};
9454
#endif
9455
54.8k
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKwSA_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESU_EEEE
Line
Count
Source
9437
632k
{
9438
632k
#if !SCN_DISABLE_LOCALE
9439
632k
    auto buffer = detail::make_scan_buffer(range);
9440
9441
632k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9442
632k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9443
632k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9444
9445
632k
    if (SCN_UNLIKELY(!result)) {
9446
21.7k
        return unexpected(result.error());
9447
21.7k
    }
9448
610k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9449
#else
9450
    static_assert(dependent_false<Locale>::value,
9451
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9452
9453
    return {};
9454
#endif
9455
632k
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESZ_EEEE
Line
Count
Source
9437
316k
{
9438
316k
#if !SCN_DISABLE_LOCALE
9439
316k
    auto buffer = detail::make_scan_buffer(range);
9440
9441
316k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9442
316k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9443
316k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9444
9445
316k
    if (SCN_UNLIKELY(!result)) {
9446
10.8k
        return unexpected(result.error());
9447
10.8k
    }
9448
305k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9449
#else
9450
    static_assert(dependent_false<Locale>::value,
9451
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9452
9453
    return {};
9454
#endif
9455
316k
}
9456
9457
template <typename Range, typename CharT>
9458
auto vscan_value_generic(Range&& range,
9459
                         basic_scan_arg<detail::default_context<CharT>> arg)
9460
    -> vscan_result<Range>
9461
530k
{
9462
530k
    auto buffer = detail::make_scan_buffer(range);
9463
9464
530k
    auto result = detail::vscan_value_impl(buffer, arg);
9465
530k
    if (SCN_UNLIKELY(!result)) {
9466
8.15k
        return unexpected(result.error());
9467
8.15k
    }
9468
522k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9469
530k
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9461
41.4k
{
9462
41.4k
    auto buffer = detail::make_scan_buffer(range);
9463
9464
41.4k
    auto result = detail::vscan_value_impl(buffer, arg);
9465
41.4k
    if (SCN_UNLIKELY(!result)) {
9466
1.81k
        return unexpected(result.error());
9467
1.81k
    }
9468
39.6k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9469
41.4k
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9461
25.4k
{
9462
25.4k
    auto buffer = detail::make_scan_buffer(range);
9463
9464
25.4k
    auto result = detail::vscan_value_impl(buffer, arg);
9465
25.4k
    if (SCN_UNLIKELY(!result)) {
9466
906
        return unexpected(result.error());
9467
906
    }
9468
24.5k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9469
25.4k
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9461
308k
{
9462
308k
    auto buffer = detail::make_scan_buffer(range);
9463
9464
308k
    auto result = detail::vscan_value_impl(buffer, arg);
9465
308k
    if (SCN_UNLIKELY(!result)) {
9466
3.62k
        return unexpected(result.error());
9467
3.62k
    }
9468
305k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9469
308k
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9461
154k
{
9462
154k
    auto buffer = detail::make_scan_buffer(range);
9463
9464
154k
    auto result = detail::vscan_value_impl(buffer, arg);
9465
154k
    if (SCN_UNLIKELY(!result)) {
9466
1.81k
        return unexpected(result.error());
9467
1.81k
    }
9468
152k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9469
154k
}
9470
}  // namespace detail
9471
9472
SCN_GCC_PUSH
9473
SCN_GCC_IGNORE("-Wnoexcept")
9474
9475
/**
9476
 * Perform actual scanning from `source`, according to `format`, into the
9477
 * type-erased arguments at `args`. Called by `scan`.
9478
 *
9479
 * \ingroup vscan
9480
 */
9481
template <typename Source>
9482
auto vscan(Source&& source, std::string_view format, scan_args args)
9483
    -> vscan_result<Source>
9484
145k
{
9485
145k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9486
145k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NSA_17basic_string_viewIcNSA_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
Line
Count
Source
9484
90.7k
{
9485
90.7k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9486
90.7k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSM_16buffer_range_tagEcEEEE
Line
Count
Source
9484
54.8k
{
9485
54.8k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9486
54.8k
}
Unexecuted instantiation: _ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS6_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIcNSD_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS6_16buffer_range_tagEcEEEE
Unexecuted instantiation: _ZN3scn2v45vscanIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NS2_17basic_string_viewIcS5_EENS0_15basic_scan_argsINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
9487
9488
/**
9489
 * Perform actual scanning from `source`, according to `format`, into the
9490
 * type-erased arguments at `args`, using `loc`, if requested. Called by
9491
 * `scan`.
9492
 *
9493
 * \ingroup locale
9494
 */
9495
template <typename Source,
9496
          typename Locale,
9497
          typename = std::void_t<decltype(Locale::classic())>>
9498
auto vscan(const Locale& loc,
9499
           Source&& source,
9500
           std::string_view format,
9501
           scan_args args) -> vscan_result<Source>
9502
145k
{
9503
145k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
9504
145k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENSt3__16localeEvEENS0_13scan_expectedINS9_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEERKT0_OSD_NS9_17basic_string_viewIcNS9_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSI_16buffer_range_tagEcEEEE
Line
Count
Source
9502
90.7k
{
9503
90.7k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
9504
90.7k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS6_6localeEvEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEERKT0_OSI_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSN_16buffer_range_tagEcEEEE
Line
Count
Source
9502
54.8k
{
9503
54.8k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
9504
54.8k
}
9505
9506
/**
9507
 * Perform actual scanning from `source` into the type-erased argument at
9508
 * `arg`. Called by `scan_value`.
9509
 *
9510
 * \ingroup vscan
9511
 */
9512
template <typename Source>
9513
auto vscan_value(Source&& source, basic_scan_arg<scan_context> arg)
9514
    -> vscan_result<Source>
9515
66.8k
{
9516
66.8k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
9517
66.8k
}
_ZN3scn2v411vscan_valueINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NS0_14basic_scan_argINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
Line
Count
Source
9515
41.4k
{
9516
41.4k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
9517
41.4k
}
_ZN3scn2v411vscan_valueINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS0_14basic_scan_argINS0_18basic_scan_contextINSM_16buffer_range_tagEcEEEE
Line
Count
Source
9515
25.4k
{
9516
25.4k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
9517
25.4k
}
9518
9519
/**
9520
 * Perform actual scanning from `stdin`, according to `format`, into the
9521
 * type-erased arguments at `args`. Called by `input`.
9522
 *
9523
 * \ingroup vscan
9524
 */
9525
scan_expected<void> vinput(std::string_view format, scan_args args);
9526
9527
namespace detail {
9528
template <typename T>
9529
auto scan_int_impl(std::string_view source, T& value, int base)
9530
    -> scan_expected<std::string_view::iterator>;
9531
9532
template <typename T>
9533
auto scan_int_exhaustive_valid_impl(std::string_view source) -> T;
9534
9535
#if !SCN_DISABLE_TYPE_SCHAR
9536
extern template auto scan_int_impl(std::string_view source,
9537
                                   signed char& value,
9538
                                   int base)
9539
    -> scan_expected<std::string_view::iterator>;
9540
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9541
    -> signed char;
9542
#endif
9543
#if !SCN_DISABLE_TYPE_SHORT
9544
extern template auto scan_int_impl(std::string_view source,
9545
                                   short& value,
9546
                                   int base)
9547
    -> scan_expected<std::string_view::iterator>;
9548
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> short;
9549
#endif
9550
#if !SCN_DISABLE_TYPE_INT
9551
extern template auto scan_int_impl(std::string_view source,
9552
                                   int& value,
9553
                                   int base)
9554
    -> scan_expected<std::string_view::iterator>;
9555
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> int;
9556
#endif
9557
#if !SCN_DISABLE_TYPE_LONG
9558
extern template auto scan_int_impl(std::string_view source,
9559
                                   long& value,
9560
                                   int base)
9561
    -> scan_expected<std::string_view::iterator>;
9562
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> long;
9563
#endif
9564
#if !SCN_DISABLE_TYPE_LONG_LONG
9565
extern template auto scan_int_impl(std::string_view source,
9566
                                   long long& value,
9567
                                   int base)
9568
    -> scan_expected<std::string_view::iterator>;
9569
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9570
    -> long long;
9571
#endif
9572
#if !SCN_DISABLE_TYPE_UCHAR
9573
extern template auto scan_int_impl(std::string_view source,
9574
                                   unsigned char& value,
9575
                                   int base)
9576
    -> scan_expected<std::string_view::iterator>;
9577
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9578
    -> unsigned char;
9579
#endif
9580
#if !SCN_DISABLE_TYPE_USHORT
9581
extern template auto scan_int_impl(std::string_view source,
9582
                                   unsigned short& value,
9583
                                   int base)
9584
    -> scan_expected<std::string_view::iterator>;
9585
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9586
    -> unsigned short;
9587
#endif
9588
#if !SCN_DISABLE_TYPE_UINT
9589
extern template auto scan_int_impl(std::string_view source,
9590
                                   unsigned int& value,
9591
                                   int base)
9592
    -> scan_expected<std::string_view::iterator>;
9593
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9594
    -> unsigned int;
9595
#endif
9596
#if !SCN_DISABLE_TYPE_ULONG
9597
extern template auto scan_int_impl(std::string_view source,
9598
                                   unsigned long& value,
9599
                                   int base)
9600
    -> scan_expected<std::string_view::iterator>;
9601
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9602
    -> unsigned long;
9603
#endif
9604
#if !SCN_DISABLE_TYPE_ULONG_LONG
9605
extern template auto scan_int_impl(std::string_view source,
9606
                                   unsigned long long& value,
9607
                                   int base)
9608
    -> scan_expected<std::string_view::iterator>;
9609
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9610
    -> unsigned long long;
9611
#endif
9612
9613
}  // namespace detail
9614
9615
SCN_GCC_POP  // -Wnoexcept
9616
9617
    // dummy namespace to reset formatting
9618
    namespace detail
9619
{
9620
}
9621
9622
/////////////////////////////////////////////////////////////////
9623
// scan
9624
/////////////////////////////////////////////////////////////////
9625
9626
/**
9627
 * The return type of `scan`, based on the type of the source, and the
9628
 * types of the scanned arguments.
9629
 */
9630
template <typename Source, typename... Args>
9631
using scan_result_type =
9632
    scan_expected<scan_result<detail::scan_result_value_type<Source>, Args...>>;
9633
9634
/**
9635
 * If `in` contains a successful result as returned from `vscan`,
9636
 * the range contained in `out` is set to `*in`.
9637
 * Otherwise, `unexpected(in.error())` is stored in `out`.
9638
 */
9639
template <typename Result,
9640
          typename Range,
9641
          std::enable_if_t<std::conjunction_v<
9642
              detail::is_specialization_of<Result, scan_result>,
9643
              std::is_same<typename Result::range_type, Range>>>* = nullptr>
9644
void fill_scan_result(scan_expected<Result>& out, scan_expected<Range>&& in)
9645
2.71M
{
9646
2.71M
    if (SCN_UNLIKELY(!in)) {
9647
106k
        out = unexpected(in.error());
9648
106k
    }
9649
2.61M
    else {
9650
2.61M
        out->set_range(SCN_MOVE(*in));
9651
2.61M
    }
9652
2.71M
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
Line
Count
Source
9645
111k
{
9646
111k
    if (SCN_UNLIKELY(!in)) {
9647
11.7k
        out = unexpected(in.error());
9648
11.7k
    }
9649
99.7k
    else {
9650
99.7k
        out->set_range(SCN_MOVE(*in));
9651
99.7k
    }
9652
111k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSJ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISJ_EEONSV_ISP_EE
Line
Count
Source
9645
111k
{
9646
111k
    if (SCN_UNLIKELY(!in)) {
9647
11.7k
        out = unexpected(in.error());
9648
11.7k
    }
9649
99.7k
    else {
9650
99.7k
        out->set_range(SCN_MOVE(*in));
9651
99.7k
    }
9652
111k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEJNS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEEEESF_TnPNS7_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENS7_7is_sameINSQ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISQ_EEONS12_ISW_EE
Line
Count
Source
9645
135k
{
9646
135k
    if (SCN_UNLIKELY(!in)) {
9647
11.7k
        out = unexpected(in.error());
9648
11.7k
    }
9649
123k
    else {
9650
123k
        out->set_range(SCN_MOVE(*in));
9651
123k
    }
9652
135k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
Line
Count
Source
9645
787k
{
9646
787k
    if (SCN_UNLIKELY(!in)) {
9647
23.5k
        out = unexpected(in.error());
9648
23.5k
    }
9649
763k
    else {
9650
763k
        out->set_range(SCN_MOVE(*in));
9651
763k
    }
9652
787k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSJ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISJ_EEONSV_ISP_EE
Line
Count
Source
9645
787k
{
9646
787k
    if (SCN_UNLIKELY(!in)) {
9647
23.5k
        out = unexpected(in.error());
9648
23.5k
    }
9649
763k
    else {
9650
763k
        out->set_range(SCN_MOVE(*in));
9651
763k
    }
9652
787k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEJNS7_12basic_stringIwNS7_11char_traitsIwEENS7_9allocatorIwEEEEEEESF_TnPNS7_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENS7_7is_sameINSQ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISQ_EEONS12_ISW_EE
Line
Count
Source
9645
787k
{
9646
787k
    if (SCN_UNLIKELY(!in)) {
9647
23.5k
        out = unexpected(in.error());
9648
23.5k
    }
9649
763k
    else {
9650
763k
        out->set_range(SCN_MOVE(*in));
9651
763k
    }
9652
787k
}
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEESC_TnPNSD_9enable_ifIXsr3stdE13conjunction_vINS7_25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSD_7is_sameINSN_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISN_EEONSZ_IST_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEESB_TnPNS7_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENS7_7is_sameINSG_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISG_EEONSS_ISM_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEESC_TnPNSD_9enable_ifIXsr3stdE13conjunction_vINS7_25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSD_7is_sameINSN_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISN_EEONSZ_IST_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
9653
9654
/**
9655
 * Returns an empty result type for a source of type `Source`, and arguments of
9656
 * type `Args...`.
9657
 */
9658
template <typename Source, typename... Args>
9659
auto make_scan_result()
9660
2.71M
{
9661
2.71M
    return scan_result_type<Source, Args...>();
9662
2.71M
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
9660
111k
{
9661
111k
    return scan_result_type<Source, Args...>();
9662
111k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
9660
111k
{
9661
111k
    return scan_result_type<Source, Args...>();
9662
111k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
9660
135k
{
9661
135k
    return scan_result_type<Source, Args...>();
9662
135k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
9660
787k
{
9661
787k
    return scan_result_type<Source, Args...>();
9662
787k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
9660
787k
{
9661
787k
    return scan_result_type<Source, Args...>();
9662
787k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
9660
787k
{
9661
787k
    return scan_result_type<Source, Args...>();
9662
787k
}
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: auto scn::v4::make_scan_result<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double>()
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
9663
9664
template <typename Source, typename... Args>
9665
auto make_scan_result(std::tuple<Args...>&& initial_values)
9666
{
9667
    using type = scan_result_type<Source, Args...>;
9668
    using subrange_type = typename type::value_type::range_type;
9669
    return type{std::in_place, subrange_type{}, SCN_MOVE(initial_values)};
9670
}
9671
9672
/**
9673
 * \defgroup scan Basic scanning API
9674
 *
9675
 * \brief The core public-facing interface of the library
9676
 *
9677
 * The following functions use a format string syntax similar to that of
9678
 * `std::format`. See more at \ref format-string.
9679
 *
9680
 * When these functions take a `source` as input, it must
9681
 * model the `scannable_source` concept. See more at \ref scannable.
9682
 */
9683
9684
/**
9685
 * Scans `Args...` from `source`, according to the
9686
 * specifications given in the format string (`format`).
9687
 * Returns the resulting values in an object of type `scan_result`,
9688
 * alongside a `subrange` pointing to the unused input.
9689
 *
9690
 * Example:
9691
 * \code{.cpp}
9692
 * if (auto result = scn::scan<int>("123", "{}"))
9693
 *     int value = result->value();
9694
 * \endcode
9695
 *
9696
 * \ingroup scan
9697
 */
9698
template <typename... Args,
9699
          typename Source,
9700
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
9701
SCN_NODISCARD auto scan(Source&& source,
9702
                        scan_format_string<Source, Args...> format)
9703
    -> scan_result_type<Source, Args...>
9704
145k
{
9705
145k
    auto result = make_scan_result<Source, Args...>();
9706
145k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9707
145k
                                   make_scan_args(result->values())));
9708
145k
    return result;
9709
145k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEEOSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS10_ISU_E4typeEEEE
Line
Count
Source
9704
45.3k
{
9705
45.3k
    auto result = make_scan_result<Source, Args...>();
9706
45.3k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9707
45.3k
                                   make_scan_args(result->values())));
9708
45.3k
    return result;
9709
45.3k
}
_ZN3scn2v44scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJDpT_EEEEEOSH_NS0_24basic_scan_format_stringIcNSM_13type_identityISH_E4typeEJDpNSY_ISS_E4typeEEEE
Line
Count
Source
9704
45.3k
{
9705
45.3k
    auto result = make_scan_result<Source, Args...>();
9706
45.3k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9707
45.3k
                                   make_scan_args(result->values())));
9708
45.3k
    return result;
9709
45.3k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJDpT_EEEEEOSO_NS0_24basic_scan_format_stringIcNST_13type_identityISO_E4typeEJDpNS15_ISZ_E4typeEEEE
Line
Count
Source
9704
54.8k
{
9705
54.8k
    auto result = make_scan_result<Source, Args...>();
9706
54.8k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9707
54.8k
                                   make_scan_args(result->values())));
9708
54.8k
    return result;
9709
54.8k
}
Unexecuted instantiation: _ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS9_18default_sentinel_tEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESQ_NSD_22borrowed_tail_subrangeISM_Xsr6rangesE14borrowed_rangeISM_EEE4typeEE4typeEJDpT_EEEEEOSM_NS0_24basic_scan_format_stringIcNSD_13type_identityISM_E4typeEJDpNS12_ISW_E4typeEEEE
Unexecuted instantiation: _ZN3scn2v44scanIJdERNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
9710
9711
/**
9712
 * `scan` with explicitly supplied default values
9713
 *
9714
 * Can be used, for example, for pre-allocating a scanned string:
9715
 *
9716
 * \code{.cpp}
9717
 * std::string str;
9718
 * str.reserve(64);
9719
 *
9720
 * // As long as the read string fits in `str`,
9721
 * // does not allocate
9722
 * auto result = scn::scan<std::string>(source, "{}",
9723
 *                                      {std::move(str)});
9724
 * // Access the read string with result->value()
9725
 * \endcode
9726
 *
9727
 * \ingroup scan
9728
 */
9729
template <typename... Args,
9730
          typename Source,
9731
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
9732
SCN_NODISCARD auto scan(Source&& source,
9733
                        scan_format_string<Source, Args...> format,
9734
                        std::tuple<Args...>&& initial_args)
9735
    -> scan_result_type<Source, Args...>
9736
{
9737
    auto result = make_scan_result<Source>(SCN_MOVE(initial_args));
9738
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9739
                                   make_scan_args(result->values())));
9740
    return result;
9741
}
9742
9743
/**
9744
 * \defgroup locale Localization
9745
 *
9746
 * \brief Scanning APIs that allow passing in a locale
9747
 */
9748
9749
/**
9750
 * `scan` using an explicit locale.
9751
 *
9752
 * Has no effect on its own, locale-specific scanning still needs to be
9753
 * opted-into on an argument-by-argument basis, with the `L` format string
9754
 * specifier.
9755
 *
9756
 * \code{.cpp}
9757
 * auto result = scn::scan<double>(
9758
 *     std::locale{"fi_FI.UTF-8"}, "3,14, "{:L}");
9759
 * // result->value() == 3.14
9760
 * \endcode
9761
 *
9762
 * \ingroup locale
9763
 */
9764
template <typename... Args,
9765
          typename Locale,
9766
          typename Source,
9767
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
9768
          typename = std::void_t<decltype(Locale::classic())>>
9769
SCN_NODISCARD auto scan(const Locale& loc,
9770
                        Source&& source,
9771
                        scan_format_string<Source, Args...> format)
9772
    -> scan_result_type<Source, Args...>
9773
145k
{
9774
145k
    auto result = make_scan_result<Source, Args...>();
9775
145k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9776
145k
                                   make_scan_args(result->values())));
9777
145k
    return result;
9778
145k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSF_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESO_NS0_6detail22borrowed_tail_subrangeISK_Xsr6rangesE14borrowed_rangeISK_EEE4typeEE4typeEJDpT_EEEEERKT0_OSK_NS0_24basic_scan_format_stringIcNSP_13type_identityISK_E4typeEJDpNS14_ISV_E4typeEEEE
Line
Count
Source
9773
45.3k
{
9774
45.3k
    auto result = make_scan_result<Source, Args...>();
9775
45.3k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9776
45.3k
                                   make_scan_args(result->values())));
9777
45.3k
    return result;
9778
45.3k
}
_ZN3scn2v44scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSD_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEERKT0_OSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNS12_IST_E4typeEEEE
Line
Count
Source
9773
45.3k
{
9774
45.3k
    auto result = make_scan_result<Source, Args...>();
9775
45.3k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9776
45.3k
                                   make_scan_args(result->values())));
9777
45.3k
    return result;
9778
45.3k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSF_PKSG_lLl4096EEESK_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEEST_NS0_6detail22borrowed_tail_subrangeISP_Xsr6rangesE14borrowed_rangeISP_EEE4typeEE4typeEJDpT_EEEEERKT0_OSP_NS0_24basic_scan_format_stringIcNSU_13type_identityISP_E4typeEJDpNS19_IS10_E4typeEEEE
Line
Count
Source
9773
54.8k
{
9774
54.8k
    auto result = make_scan_result<Source, Args...>();
9775
54.8k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9776
54.8k
                                   make_scan_args(result->values())));
9777
54.8k
    return result;
9778
54.8k
}
9779
9780
/**
9781
 * `scan` with a locale and default values
9782
 *
9783
 * \ingroup locale
9784
 */
9785
template <typename... Args,
9786
          typename Locale,
9787
          typename Source,
9788
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
9789
          typename = std::void_t<decltype(Locale::classic())>>
9790
SCN_NODISCARD auto scan(const Locale& loc,
9791
                        Source&& source,
9792
                        scan_format_string<Source, Args...> format,
9793
                        std::tuple<Args...>&& initial_args)
9794
    -> scan_result_type<Source, Args...>
9795
{
9796
    auto result = make_scan_result<Source>(SCN_MOVE(initial_args));
9797
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9798
                                   make_scan_args(result->values())));
9799
    return result;
9800
}
9801
9802
/**
9803
 * `scan` a single value, with default options.
9804
 *
9805
 * Essentially equivalent to: `scn::scan<T>(source, "{}")`,
9806
 * except it can skip parsing the format string, gaining performance.
9807
 *
9808
 * \ingroup scan
9809
 */
9810
template <typename T,
9811
          typename Source,
9812
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
9813
SCN_NODISCARD auto scan_value(Source&& source) -> scan_result_type<Source, T>
9814
66.8k
{
9815
66.8k
    auto result = make_scan_result<Source, T>();
9816
66.8k
    fill_scan_result(
9817
66.8k
        result, vscan_value(SCN_FWD(source),
9818
66.8k
                            detail::make_arg<scan_context>(result->value())));
9819
66.8k
    return result;
9820
66.8k
}
_ZN3scn2v410scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJT_EEEEEOSJ_
Line
Count
Source
9814
20.7k
{
9815
20.7k
    auto result = make_scan_result<Source, T>();
9816
20.7k
    fill_scan_result(
9817
20.7k
        result, vscan_value(SCN_FWD(source),
9818
20.7k
                            detail::make_arg<scan_context>(result->value())));
9819
20.7k
    return result;
9820
20.7k
}
_ZN3scn2v410scan_valueINSt3__117basic_string_viewIcNS2_11char_traitsIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJT_EEEEEOSH_
Line
Count
Source
9814
20.7k
{
9815
20.7k
    auto result = make_scan_result<Source, T>();
9816
20.7k
    fill_scan_result(
9817
20.7k
        result, vscan_value(SCN_FWD(source),
9818
20.7k
                            detail::make_arg<scan_context>(result->value())));
9819
20.7k
    return result;
9820
20.7k
}
_ZN3scn2v410scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJT_EEEEEOSO_
Line
Count
Source
9814
25.4k
{
9815
25.4k
    auto result = make_scan_result<Source, T>();
9816
25.4k
    fill_scan_result(
9817
25.4k
        result, vscan_value(SCN_FWD(source),
9818
25.4k
                            detail::make_arg<scan_context>(result->value())));
9819
25.4k
    return result;
9820
25.4k
}
9821
9822
/**
9823
 * `scan` a single value, with default options, and a default value.
9824
 *
9825
 * \ingroup scan
9826
 */
9827
template <typename T,
9828
          typename Source,
9829
          std::enable_if_t<detail::is_file_or_narrow_range<Source>>* = nullptr>
9830
SCN_NODISCARD auto scan_value(Source&& source, T initial_value)
9831
    -> scan_result_type<Source, T>
9832
{
9833
    auto result =
9834
        make_scan_result<Source>(std::tuple<T>{SCN_MOVE(initial_value)});
9835
    fill_scan_result(
9836
        result, vscan_value(SCN_FWD(source),
9837
                            detail::make_arg<scan_context>(result->value())));
9838
    return result;
9839
}
9840
9841
/**
9842
 * Scan from `stdin`.
9843
 *
9844
 * Equivalent to `scn::scan<...>(stdin, ...)`.
9845
 *
9846
 * \code{.cpp}
9847
 * auto result = scn::input<int>("{}");
9848
 * \endcode
9849
 *
9850
 * \ingroup scan
9851
 */
9852
template <typename... Args>
9853
SCN_NODISCARD auto input(scan_format_string<std::FILE*, Args...> format)
9854
    -> scan_result_type<std::FILE*, Args...>
9855
{
9856
    auto result = scan_result_type<std::FILE*, Args...>(std::in_place, stdin,
9857
                                                        std::tuple<Args...>{});
9858
    auto err = vinput(format, make_scan_args(result->values()));
9859
    if (SCN_UNLIKELY(!err)) {
9860
        result = unexpected(err.error());
9861
    }
9862
    return result;
9863
}
9864
9865
/**
9866
 * Write msg to stdout, and call `input<Args...>(format)`
9867
 *
9868
 * \ingroup scan
9869
 */
9870
template <typename... Args>
9871
SCN_NODISCARD auto prompt(const char* msg,
9872
                          scan_format_string<std::FILE*, Args...> format)
9873
    -> scan_result_type<std::FILE*, Args...>
9874
{
9875
    std::printf("%s", msg);
9876
    std::fflush(stdout);
9877
    return input<Args...>(format);
9878
}
9879
9880
namespace detail {
9881
template <typename T>
9882
inline constexpr bool is_scan_int_type =
9883
    std::is_integral_v<T> && !std::is_same_v<T, char> &&
9884
    !std::is_same_v<T, wchar_t> && !std::is_same_v<T, char32_t> &&
9885
    !std::is_same_v<T, bool>;
9886
}
9887
9888
/**
9889
 * Fast integer reading.
9890
 *
9891
 * Quickly reads an integer from a `std::string_view`. Skips preceding
9892
 * whitespace.
9893
 *
9894
 * Reads in the specified base,
9895
 * allowing a base prefix. Set `base` to `0` to detect the base from the
9896
 * input. `base` must either be `0`, or in range `[2, 36]`.
9897
 *
9898
 * \ingroup scan
9899
 */
9900
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9901
SCN_NODISCARD auto scan_int(std::string_view source, int base = 10)
9902
    -> scan_result_type<std::string_view, T>
9903
{
9904
    auto result = scan_result_type<std::string_view, T>();
9905
    if (auto r = detail::scan_int_impl(source, result->value(), base);
9906
        SCN_LIKELY(r)) {
9907
        result->set_range(ranges::subrange{*r, source.end()});
9908
    }
9909
    else {
9910
        result = unexpected(r.error());
9911
    }
9912
    return result;
9913
}
9914
9915
namespace detail {
9916
template <bool Val, typename T>
9917
inline constexpr bool dependent_bool = Val;
9918
}
9919
9920
/**
9921
 * Very fast integer reading.
9922
 *
9923
 * Quickly reads an integer from a `std::string_view`.
9924
 *
9925
 * Be very careful when using this one!
9926
 * Its speed comes from some very heavy assumptions about the validity of
9927
 * the input:
9928
 *  - `source` must not be empty.
9929
 *  - `source` contains nothing but the integer: no leading or trailing
9930
 *    whitespace, no extra junk. Leading `-` is allowed for signed types,
9931
 *    no `+` is allowed.
9932
 *  - The parsed value does not overflow.
9933
 *  - The input is a valid base-10 integer.
9934
 * Breaking these assumptions will lead to UB.
9935
 *
9936
 * \ingroup scan
9937
 */
9938
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9939
SCN_NODISCARD auto scan_int_exhaustive_valid(std::string_view source) -> T
9940
{
9941
    static_assert(
9942
        detail::dependent_bool<!SCN_IS_BIG_ENDIAN, T>,
9943
        "scan_int_exhaustive_valid requires a little endian environment");
9944
    return detail::scan_int_exhaustive_valid_impl<T>(source);
9945
}
9946
9947
SCN_END_NAMESPACE
9948
}  // namespace scn